Gleiche OnClick Methode fuer mehrere Buttons

  • 4 Antworten
  • Letztes Antwortdatum
G

grumbleman

Neues Mitglied
0
Hi,

ich moechte füer mehrere Buttons die gleiche onClock verwenden.
Dazu habe ich im layout.xml fuer die Buttons android:onClick="buttonClick" eingetragen, bei jedem Button die gleiche

nun soll meine onclick fuer den betroffenen button den text aendern

also
Code:
public void buttonClick(View v) {
		 v.setText("TEST");
	 }

leider funktioniert es nicht, warum?
ich will eigentlich nur den Text des Buttons aendern auf den ich druecke.
Spaeter soll dort stehen: "Test: 1" und fuer jeden click hochgezaehlt werden, auf Test: 2 usw.

Das soll aber auf allen Buttons mit dieser onClick so passieren und ich will den code nicht x mal reinkleben.

leider sehe ich im debug die Fehlermeldung, kenn mich da noch nicht gut genug aus um zur richtigen info zu kommen

Eine Idee?
 
grumbleman schrieb:
leider sehe ich im debug die Fehlermeldung, kenn mich da noch nicht gut genug aus um zur richtigen info zu kommen

Die Fehlermeldung wäre natürlich hilfreich...
 
Die Meldung ist folgende
Thread [<3> main] (Suspended (exception IllegalStateException))
ViewRoot.handleMessage(Message) line: 1740
ViewRoot(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 123
ActivityThread.main(String[]) line: 4363
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 521
ZygoteInit$MethodAndArgsCaller.run() line: 860
ZygoteInit.main(String[]) line: 618
NativeStart.main(String[]) line: not available [native method]


ich habe die onclick nochmal angepasst:

Code:
public void buttonClick(Button v) {
		 v.setText("TEST");
	 }
 
Also eigentlich macht man sowas mit einem OnClickListener, den man im Programmcode einbindet.

Ich vermute aber mal, dass bei deiner Methode einfach nur die Methdensignatur nicht stimmt. die Methode muss als Argumenttyp einen View erhalten (Button ist zwar ein View, aber Activity.buttonClick(View) und Activity.buttonClick(Button) sind zwei verschiedene Methoden)
 
OH ich hab es herausbekommen:

Code:
public void onButtonClick(View v) {
		 Button b = (Button) v;
		 b.setText("TesT");
	 }
 
Zurück
Oben Unten