Button Click in Dialog

  • 4 Antworten
  • Letztes Antwortdatum
N

note3

Ambitioniertes Mitglied
0
Hallo zusammen,

ich habe einen Dialog mit vielen Buttons, die immer mehr werden.
Code:
    public void doButtonMulti()
    {   
        final Dialog dialog = new Dialog(this);
        dialog.requestWindowFeature(dialog.getWindow().FEATURE_NO_TITLE); 
        dialog.setContentView(R.layout.dialog_multichar);
        ...
    }
Jetzt will ich wissen, welcher Button geClickt wurde.
Dazu kann ich natürlich für jeden Button einen b.setOnClickListener setzen,
das ergibt viele Zeilen, geht es nicht auch anders und kürzer.
Habe dazu in meinem dicken/schlauen Buch nichts gefunden.

Oder muss man unbedingt eine neue Activity einführen?

Mit Gruß
E.S.
 
Also du kannst ja ohne weiteres Funktionen anlegen und die dann beliebig aufrufen.

button x onclick
{
... funktion x();
eigenartDesButton y;
}

Du musst halt schauen, welche Teile du permanent aufrufst und welche sich unterscheiden.
So würdest du dir zumindest einiges an Zeit sparen.
Je nachdem, wie du deine Buttons behandelst, kannst du auch mit Arrays arbeiten.

Deine Frage ist recht unpräzise, daher kann ich nur vermuten.
 
Hi,

jain.
Also je nach Programmierart - bzw. Programmierstiel des Programmiers - gibt es 3 verschiedene Wege:

1.)
Jedem Button individuell einen onClickListener() hinzufügen.

2.)
Im XML eine Methode definieren, die beim Click aufgerufen werden soll.
(Stichpunkte: onClick="method")
Im Code kannst du dann abfragen welche ID angeklickt worden ist (Switch-Case)

3.
Ähnlich wie 2. Nur das du für jeden Button eine eigene Methode erstellst...

Gruß
 
  • Danke
Reaktionen: note3
StefMa schrieb:
...
2.)
Im XML eine Methode definieren, die beim Click aufgerufen werden soll.
(Stichpunkte: onClick="method")
...
Ja, so in etwa habe ich es mir vorgestellt, deshalb schon mal danke.
Aber:
das geht für die Buttons, die nnerhalb der MainActivity zu sehen sind.
Ich habe aber einen Dialog (s.o.) und für die dort verwendeten Buttons
geht es nicht. Dann stürzt das Programm ab.
 
Zurück
Oben Unten