onClick Attribut eines Buttons zur Laufzeit ändern

C

coolz3ro

Neues Mitglied
0
Die Frage steht eigentlich schon im Titel:
Wie kann ich (bzw. kann ich überhaupt) das onClick Attribut eines Buttons zur Laufzeit ändern?
Ziel ist es, dass beim Klick auf den Button eine Methode aufgerufen wird, die unter Anderem das onClick Attribut des Buttons ändert und damit beim zweiten Klick auf den Button eine andere Methode aufgerufen wird, als beim ersten Klick.

Bin auch dankbar für andere Lösungswege, falls meine Idee nicht funktionieren sollte!
 
Ruf doch lieber die gleiche Methode auf, und definiere da eine Art Counter, oder wie auch immer, sodass du herausfindest, ob sie 1,2, n-mal aufgerufen wurde ;)

Wäre jetzt meine Herangehensweise.

Greets,
Max
 
  • Danke
Reaktionen: coolz3ro
Auch eine interessante Idee. Wenn es keine weiteren Vorschläge gibt, werde ich es mal so versuchen...
 
Hi, du kannst beim Start der App einen Integer definieren und zwar:

Code:
private int currentMethod = 0;
und bei der Methode die aufgerufen wird wenn der Button gedrück wird machst du sowas:

Code:
public void onButtonClick(View view){

if(currentMethod == 0){
//Hier alles was bei der erste Funktion passieren soll

currentMethod = 1;
}
else if(currentMethod == 1){
//Hier alles was bei der zweite Funktion passieren soll

currentMethod = 0;
}
}
und so wird immer am Anfang die erste Funktion aufgerufen dann die zweite, dann wieder die erste usw...

Aber beim start wird immer die erste Funktion aufgerufen

mfg
 
  • Danke
Reaktionen: coolz3ro
Kollen schrieb:
Hi, du kannst beim Start der App einen Integer definieren und zwar: [...]

==

Ruf doch lieber die gleiche Methode auf, und definiere da eine Art Counter, oder wie auch immer, sodass du herausfindest, ob sie 1,2, n-mal aufgerufen wurde
:thumbsup:

Greets
 
Problem ist, dass die Variable currentMethod in der Methode nicht bekannt ist, oder seh ich das falsch ;)

Ich glaube das funktioniert so doch nicht, weil ich die Variable ja in der Methode definieren muss, damit sie dort bekannt ist. die einzige möglichkeit wäre vielleicht die variable außerhalb du initialisieren, dann der methode zu übergeben und am ende der methode soll diese variable wieder zurück gegeben werden (eben um eins erhöht!)
 
Zuletzt bearbeitet:
Hi, ja du hast recht eine ähnlichkeit besteht schon aber es ist ganz sicher nicht == :huh: denn bei meiner Idee brauchst du nicht herausfinden ob es grad eine gerade oder ungerade Zahl ist hehe (extra code).

Der ursprüngliche Beitrag von 23:20 Uhr wurde um 23:24 Uhr ergänzt:

Doch entweder definierst du die Variable local -> also in der onButtonClick Methode oder global -> über der onCreate() Methode
Code:
private int x = 0;

public void onCreate(Bundle savedInstanceState){
...
}

public void onButtonClick(View view){
...
}

mfg
 
Kollen schrieb:
Hi, ja du hast recht eine ähnlichkeit besteht schon aber es ist ganz sicher nicht == :huh: denn bei meiner Idee brauchst du nicht herausfinden ob es grad eine gerade oder ungerade Zahl ist hehe (extra code).[...]
Okay, == ist wirklich nicht korrekt, nehmen wir := ;)

Aber ob es eine gerade oder ungerade Zahl ist, interessiert ja bei meinem Counter auch nicht.

Aber ist ja auch wurschd - der TO wird mit unsren Lösungsansätzen was anfangen können :thumbup:

Greets,
Max
 
Vielen Dank! Habe eure Ideen bereits umgesetzt und es funktioniert wunderbar :)
 

Ähnliche Themen

A
  • AnimaAngelo85
Antworten
1
Aufrufe
337
swa00
swa00
MES
Antworten
10
Aufrufe
820
MES
MES
D
Antworten
14
Aufrufe
1.715
chrs267
chrs267
Zurück
Oben Unten