Ich habe in 16 Button
s (Zahlen, plus, minus usw.) in meiner Layout-XML-Datei.
Ich frage mich, wie man überprüft, welche Taste gedrückt wurde.
Meine Idee ist, dass ich für jede Schaltfläche onClick()
Methode verwenden werde, aber diese Methode ist ein wenig unpraktisch, weil ich 16 dieser onClick()
Methoden für jede Schaltfläche haben werde.
Gibt es einen eleganteren Weg?
Sie können alle in einer einzigen Klasse behandeln, die OnClickListener implementiert, oder in der Aktivitätsklasse, wenn Sie möchten ...
%Vor% Sie können einen Handler verwenden, den Sie nicht als anonyme innere Klasse, sondern in einer separaten Klasse definieren. onClick()
wird die übergebene Ansicht erhalten und Sie können daraus auswählen.
und dann in deiner layout.xml einfach für jede Schaltfläche setzen
%Vor% Sicher. Erstellen Sie ein Array von button-ids
und weisen Sie ihnen denselben Listener (eine Implementierung von View.OnClickListener
- definiert als separate Klasse, nicht als anonyme Klasse) in einer Schleife zu. Im Listener können Sie überprüfen, welche Schaltfläche gedrückt ist (indem Sie den view
-Parameter in onClick()
method vergleichen).
In Aktivität:
%Vor%In der onClick-Methode:
%Vor%Sie müssen 16 Klick-Listener nicht erwähnen. Erstellen Sie eine Eins und hängen Sie sie an jede Schaltfläche an. Die onClick () -Methode ruft eine Ansicht als Parameter ab. Diese Ansicht ist deine Schaltfläche. Überprüfen Sie einfach die ID oder den Namen.