Dialog frage.

  • Antworten:4
Tobi H
  • Forum-Beiträge: 292

14.11.2010, 16:03:58 via Website

Hallo, ich möchte einen custom Dialog bauen. Der Dialog besteht aus einem TextView, EditText und einem Button.
Aber wie kann ich 1. durch clicken auf den Button, den Dialog schließen und 2. wie komme ich, nach dem schließen, an den Text, aus dem EditText?

Antworten
L3322
  • Forum-Beiträge: 467

14.11.2010, 16:28:49 via App

frage: was willst du mit dem Text machen?

"Hard work beats talent, when talent fails to work hard"

Antworten
Tobi H
  • Forum-Beiträge: 292

14.11.2010, 16:30:26 via Website

Wie meinst du das? ich möchte den Text, nach der Eingabe, verarbeiten..

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

14.11.2010, 19:15:00 via Website

einfach den dialog per

onCreateDialog erzeugen

wenn du ein layout hast, kannst du einen onclicklistener auf den button im dialog legen.

oder einfach .setOnPositiveButton(....) nutzen

swordiApps Blog - Website

Antworten
Gelöschter Account
  • Forum-Beiträge: 294

16.11.2010, 13:58:40 via Website

Nach dem Schließen der Activity wird das wohl nicht mehr gehen ;-)

Du hast z.B. einen Button in Deinem Layout:

1<Button
2 android:id="@+id/b_ok"
3 android:text="@android:string/ok"
4 android:layout_width="fill_parent"
5 android:layout_height="wrap_content"
6 android:onClick="onClickOk" />

Wenn der Benutzer dann auf Ok klickt könntest Du das wie folgt verarbeiten:

1public void onClickOk(View view) {
2 EditText editText = (EditText) findViewById(R.id.deineEditTextId);
3 String string = editText.getText().toString()
4 // ...
5 setResult(RESULT_OK);
6 finish();
7}

Nun ist die Activity weg. Das RESULT_OK kannst Du dann wiederum in der aufrufenden Activity in onActivityResult prüfen:

1protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
2 if (requestCode == deineAufrufIdAusDemStartActivityForResultAufruf) {
3 if (resultCode == RESULT_OK) {
4 // ...
5 }
6 }
7}

Wie Du siehst schreibe ich immer Activity statt Dialog. Ich verwende nämlich immer Activities und Dialoge reduziere ich auf kleinere Anzeigen. Ich würde auch eine Custom Activity für etwas komplexere Layouts verwenden und keinen Custom Dialog. Aber das ist halt Geschmackssache. Der obige Code setzt voraus das Du die Activity mit startActivityForResult aufgerufen hast. Es gibt noch weitere Möglichkeiten aber so mach ich es immer.

Gruß
Harald

— geändert am 16.11.2010, 14:06:53

Antworten