onClick Attribut eines Buttons zur Laufzeit ändern

  • 8 Antworten
  • Neuester Beitrag
Diskutiere onClick Attribut eines Buttons zur Laufzeit ändern im Android App Entwicklung im Bereich Betriebssysteme & Apps.
C

coolz3ro

Neues Mitglied
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!
 
myeta

myeta

Erfahrenes Mitglied
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
 
C

coolz3ro

Neues Mitglied
Auch eine interessante Idee. Wenn es keine weiteren Vorschläge gibt, werde ich es mal so versuchen...
 
K

Kollen

Gast
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
 
myeta

myeta

Erfahrenes Mitglied
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
 
C

coolz3ro

Neues Mitglied
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:
K

Kollen

Gast
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
 
myeta

myeta

Erfahrenes Mitglied
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
 
C

coolz3ro

Neues Mitglied
Vielen Dank! Habe eure Ideen bereits umgesetzt und es funktioniert wunderbar :)
 
Ähnliche Themen - onClick Attribut eines Buttons zur Laufzeit ändern Antworten Datum
4
6