TextView Integer+1 Problem

6

6771000

Neues Mitglied
0
Hallo!

Habe folgendes Problem:

Ich möchte per Buttonpress den Wert eines TextViews um 1 erhöhen!

Mein Ansatz wäre dieser:

Code:
String wetteinsatz = (String) txtbet.getText();
int wetteinsatz_int = Integer.valueOf(wetteinsatz).intValue();
wetteinsatz_int = wetteinsatz_int +1;
//wetteinsatz = ""+wetteinsatz_int; (optional)
txtbet.setText(wetteinsatz);

Also meine Idee ist:
Ich lege den String wetteinsatz an und weise ihm den Wert des Textfeldes zu.
Danach wandle ich diesen in einen Integer um um damit rechnen zu können.
Jetzt erhöhe ich den Wert um 1.
(Hier bin ich mir nicht sicher) Ich wandle den Integer wieder in einen String zurück.
Und dann setz ich dem Feld meinen um 1 erhöhten Wert wieder ein.

Leider funktioniert das nicht und die Anwendung muss unerwartet beendet werden :/

Wäre nett, wenn mir jemand damit helfen könnte! Vielleicht findet ja wer den Fehler ;)

Danke schonmal im Voraus! lG 677
 
Wie genau sieht denn der Inhalt von txtbet.getText() zu dem Zeitpunkt aus?
Irgendwelche Punkte, Komma, Währungszeichen etc. darin?

EDIT: Die genaue Exception (per logcat) wäre wohl auch hilfreich ;)
 
  • Danke
Reaktionen: 6771000
Der gepostete Code ist jedenfalls sauber bis auf den offensichtlichen Fehler, dass wieder der alte Wetteinsatz in das Feld zurückgeschrieben wird statt der erhöhte. Das führt aber nur zu falschem Verhalten und nicht zu einer Fehlermeldung.
Ich tippe auch darauf, dass im TextView etwas steht, das man nicht zu einem Integer parsen kann. Logcat sollte da helfen.
 
  • Danke
Reaktionen: 6771000
Ich bedanke mich für eure Tipps!

Jedoch bin ich heute morgen selbst drauf gekommen..

LogCat hätte mir wohl geholfen, jedoch programmier ich bis jetzt ohne, weil ich das mit adb nicht hinbekommen hab ^^

Die erste Zeile muss so aussehen: Der String Cast hat ihm irgendwie nicht gepasst :/ Obwohl er mir von NetBeans empfohlen wurde ^^
Darum hab ich einfach den Inhalt der TextView mit der toString() Methode konvertiert:
Code:
String wetteinsatz = txtbet.getText().toString();

Aber DANKE auf jeden Fall an euch, dass ihr euch die Mühe gegeben habt meinen Code anzuschauen und euch Gedanken darüber gemacht habt :)


Das Ganze sieht jetzt so aus und funktioniert :)
Code:
String wetteinsatz = txtbet.getText().toString();
int wetteinsatz_int = Integer.valueOf(wetteinsatz).intValue();
wetteinsatz_int = wetteinsatz_int -1;
wetteinsatz = ""+wetteinsatz_int;
txtbet.setText(wetteinsatz);

lG 677
 
6771000 schrieb:
Die erste Zeile muss so aussehen: Der String Cast hat ihm irgendwie nicht gepasst :/ Obwohl er mir von NetBeans empfohlen wurde ^^

Laut API ist der Rückgabetyp CharSequence (hätte ich selber draufkommen können, das mal nachzusehen), das ist ein Interface. Das kann ein String sein, kann genausogut aber auch keiner sein. Wenn es keiner ist gibts eine ClassCastException.
Es kann also durchaus sein, dass das in einem Beispiel funktioniert hat, aber der bessere Weg ist toString(), weil das immer klappt.
 
Achso :) Danke für die Info!

Ja für mich hat es auf den ersten Blick so gestimmt.. aber Übung macht den Meister :)
 

Ähnliche Themen

W
  • WuDiDong
Antworten
3
Aufrufe
767
jogimuc
J
B
Antworten
4
Aufrufe
487
bb321
B
Hansimglueck0815
Antworten
0
Aufrufe
733
Hansimglueck0815
Hansimglueck0815
Zurück
Oben Unten