Custom Dialog - Text und ImageView

  • 2 Antworten
  • Letztes Antwortdatum
P

PhillippOh

Fortgeschrittenes Mitglied
10
Hey,

ich versuche mich gerade an einem Custom Dialog. Dabei will ich ein TextView und ImageView des Custom Dialog Layouts im Code ansprechen, nur leider stürzt mir die App dann ab. Hier mal der Code:

Code:
public class CustomTestDialogFragment extends DialogFragment {
		
		 public String mText = "";
	        public void setText(String text){
	            mText = text;
	        }
	        
	    @Override
	    public Dialog onCreateDialog(Bundle savedInstanceState) {
	        // Use the Builder class for convenient dialog construction
	        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
	        LayoutInflater inflater = getActivity().getLayoutInflater();
	        builder.setView(inflater.inflate(R.layout.customdialog, null));
	        
	        ImageView image = (ImageView) findViewById(R.id.dialogImage);
	        image.setImageResource(R.drawable.ic_launcher);
	        
	        TextView dialogText = (TextView) findViewById(R.id.dialogText);
	        dialogText.setText(mText);
	        
	               builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
	                   public void onClick(DialogInterface dialog, int id) {
	                       // FIRE ZE MISSILES!
	                   }
	               });
	             
	        // Create the AlertDialog object and return it
	        return builder.create();
	    }
	}

Ich weiß, dass die 4 Zeilen mit dem ImageView und TextView daran Schuld sind, weil wenn ich die weg nehme, bekomme ich einen leeren Dialog angezeigt.

Hier mal mein LogCat, den könnt ihr bestimmt besser deuten als ich, oder ihr wisst, warum mein Code nicht geht:

Code:
09-19 18:52:52.248: E/AndroidRuntime(2866): FATAL EXCEPTION: main
09-19 18:52:52.248: E/AndroidRuntime(2866): java.lang.NullPointerException
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at de.phillippohlandt.phillstestapp.DialogActivity$CustomTestDialogFragment.onCreateDialog(DialogActivity.java:93)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at android.app.DialogFragment.getLayoutInflater(DialogFragment.java:398)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:885)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at android.app.BackStackRecord.run(BackStackRecord.java:682)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at android.app.FragmentManagerImpl$1.run(FragmentManager.java:441)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at android.os.Handler.handleCallback(Handler.java:730)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at android.os.Handler.dispatchMessage(Handler.java:92)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at android.os.Looper.loop(Looper.java:137)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at android.app.ActivityThread.main(ActivityThread.java:5103)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at java.lang.reflect.Method.invokeNative(Native Method)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at java.lang.reflect.Method.invoke(Method.java:525)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-19 18:52:52.248: E/AndroidRuntime(2866): 	at dalvik.system.NativeStart.main(Native Method)
 
LayoutInflater inflater = getActivity().getLayoutInflater(); builder.setView(inflater.inflate(R.layout.customdialog, null));

Stattdessen:

PHP:
LayoutInflater inflater = getActivity().getLayoutInflater();  
View alertDialogView = inflater .inflate(R.layout.customdialog, null);

Dann deine Zuweisung der Variablen, wie folgt:
PHP:
ImageView image = (ImageView) alertDialogView.findViewById(R.id.dialogImage);
etc.

Und dann
PHP:
builder.setView(alertDialogView);


So in der Art, konnts grad nicht testen.
 
Hey, danke, hat funktioniert. Muss jetzt nur noch das layout etwas anpassen. Weiß jemand die Standard padding Werte für den Text bei einem normalen Alert Dialog?
 
Zurück
Oben Unten