AlertDialog, onBackPressed, Änderung in der aufrufenden Activity

  • Antworten:3
John Do
  • Forum-Beiträge: 36

24.02.2012, 18:49:32 via Website

Hallo liebes Forum,

ich rufe aus einer View einen Alertdialog auf. Drückt der User den Dialogbutton, dann werden bestimmte Ereignisse ausgelöst. Drückt der User den Zurückbutton, dann passiert nichts. Also habe ich in die Dialogklasse die onBackPressed Methode implementiert. Meine Frage ist nun wie kann ich die Ereignisse in der aufrufenden View auslösen?
Muss ich die betreffenden Ereignisse in eine static-methode auslagern damit die Dialogclasse die Ereignisse auch ohne Viewobjekt ausführt, oder muss ich das Viewobjekt bei der Erschaffung des Dialoges übergeben?

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

24.02.2012, 19:48:50 via Website

hmm so ganz kapier ich das nicht

onBackPressed ist ja eine Methode von Activity - nicht von Dialog ( oder etwa auch ? )

einem Dialog kannst du einen onCancelListener geben, der genau dafür gedacht ist

swordiApps Blog - Website

Antworten
John Do
  • Forum-Beiträge: 36

25.02.2012, 14:39:47 via Website

Moin Markus,

dein Tip war genau richtig, aber onBackPressed () gibt es auch für den Dialog.
http://developer.android.com/reference/android/app/Dialog.html#onBackPressed%28%29

Der Folgende Quellcode befindet sich in der View, welche den Dialog aufruft.
1myDialog.setOnCancelListener(new OnCancelListener() {
2 @Override
3 public void onCancel(DialogInterface dialog) {
4 // TODO Auto-generated method stub
5 }
6 });
7
8 Button aButton = (Button) myDialog.findViewById(R.id.Exitbutton);
9 aButton.setOnClickListener(new OnClickListener() {
10 public void onClick(View v) {
11 // TODO Auto-generated method stub
12 }
13 });

Mich interessiert dennoch eine mögliche Lösung unter Verwendung der onBackPressed-Methode innerhalb der Dialogklasse.

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

25.02.2012, 17:05:34 via Website

ich habs noch nie mit onBackPressed gemacht. Der onCancelListener tuts einfach :D

swordiApps Blog - Website

Antworten