# Dialog in Fragment



## Javandroid (5. Feb 2015)

Hallo zusammen,

Ich versuche aktuell ein Dialog, zur Eingabe eines Users aus einem Fragment heraus aufzurufen, leider aktuell ohne Erfolg. Bei google finde Ich leider nur Beispiele zum Starten eines Dialogs aus einer Activity heraus.

Hat jemand diesbezüglich ein Beispiel parat?
Vielen Dank vorab und Gruß


----------



## dzim (6. Feb 2015)

Was genau ist das Problem? Das Fragment kennt seine Activity. Dafür gibt es die Methode #getActivity() - und von dort aus kannst du wie gewohnt arbeiten...


----------



## Javandroid (6. Feb 2015)

Der Dialog öffnet sich nun,. Wenn Ich aber eine Eingabe im Dialog gemacht habe und den TextView des Fragment dadurch ändern möchte bekomme Ich eine NullPointerException, sieht jemand warum? 


```
LayoutInflater layoutInflater = LayoutInflater.from(getActivity());

			View view = layoutInflater.inflate(R.layout.xy);
			final TextView textView = (TextView) view.findViewById(R.id.tv_yz);		
		
			AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());

			alertDialogBuilder.setView(view);

			final EditText inputText = (EditText) view.findViewById(R.id.editText1);

			
			alertDialogBuilder.setTitle("Title:");
			
			// setup a dialog window
			alertDialogBuilder
					.setCancelable(false)
					.setPositiveButton("OK", new DialogInterface.OnClickListener() {
								public void onClick(DialogInterface dialog, int id) {
									// get user input and set it to result
									textView.setText(inputText.getText());
								}
							})
					.setNegativeButton("Cancel",
							new DialogInterface.OnClickListener() {
								public void onClick(DialogInterface dialog,	int id) {
									dialog.cancel();
								}
							});

			// create an alert dialog
			AlertDialog alertD = alertDialogBuilder.create();

			alertD.show();
```


----------



## dzim (6. Feb 2015)

Wollte gerade was anderes schreiben, aber ich hab meine Meinung geändert :-D

Ich würde dir folgendes Empfehlen: Verwende ein Dialog-Fragment. Lässt sich in weiten Teilen wie ein Dialog steuern, aber die Logik ist weit einfacher zu implementieren. Funktioniert genauso wie dein Fragment, aus dem heraus du den Dialog öffnest.

Using DialogFragments | Android Developers Blog
DialogFragment | Android Developers

https://github.com/codepath/android_guides/wiki/Using-DialogFragment

......... u.s.w.u.s.f. ........


----------



## Javandroid (6. Feb 2015)

Danke. Eigentlich funktioniert ja alles soweit. Wenn Ich nach "OK" den Text via Toast anzeigen lassen zeigt er den eingegebenen Text auch korrekt an. Möchte Ich aber die TextView unter dem Dialog nach "OK" ändern...

```
textView.setText(inputText.getText().toString());
```
...schmeißt er die NullPointerException. Da Ich was dazu lernen möchte die Frage warum das so ist und nicht funktioniert...


----------



## dzim (9. Feb 2015)

Debugge doch mal... Das sollte recht gut funktionieren. Gerade mit einem Gerät dran.


----------



## Javandroid (9. Feb 2015)

Ich habe via findViewById() einen Wert eines anderen Layouts zugewiesen und dann kommt natürlich null dabei raus. 
Vielen Dank, das Problem ist somit gelöst. Manchmal hängt man an Kleinigkeiten die eigentlich Offensichtlich sind. Aber aus Fehlern lernt man bekanntlich ja am meisten.

Thx


----------

