Rechner

L

loirad

Neues Mitglied
0
Hallo @ all,
ich bin blutiger Anfänger auf diesem Gebiet (leichte Vorkenntnisse durch Toutorials - HalloWelt und Layout) und möchte einen Rechner programmieren!
Nun ist mein Problem, dass mein Programm abschmiert. Ich habe den Fehler lokalisiert und schicke die wichtigen Zeilen Code mit. Warum funktioniert das nicht :confused:

Code:
private EditText zahl1;
private EditText zahl2;
...
zahl1 = (EditText) findViewById(R.id.eZ1);
zahl2 = (EditText) findViewById(R.id.eZ2);
und in einem listener:
Code:
int Z1 = Integer.valueOf(zahl1.toString()); <--diese beiden
int Z2 = Integer.valueOf(zahl2.toString()); <--Zeilen machen Probleme
 
mach mal:

//genaue funktion grad nicht im Kopf
int z1 = Integer.parseInt(zahl1.getText());
 
Das macht nur einen Unterschied, wenn jemand Hex-Zahlen a la 0x12345 eingibt.
Ich vermute eher, dass im EditText keine Zahl drinsteht und deswegen eine NumberFormatException fliegt. Um solche Konvertierungen gehört ein try-catch, das im Exception-Fall einen Fehler anzeigt o.ä.

Sent from my MB525 using Tapatalk
 
Hi loirad,

loirad schrieb:
Code:
private EditText zahl1;
private EditText zahl2;
...
zahl1 = (EditText) findViewById(R.id.eZ1);
zahl2 = (EditText) findViewById(R.id.eZ2);
und in einem listener:
Code:
int Z1 = Integer.valueOf(zahl1.toString()); <--diese beiden
int Z2 = Integer.valueOf(zahl2.toString()); <--Zeilen machen Probleme

"zahl1.toString()"
zahl1 ist keine Zahl sonder ein EditText, ein toString() bringt dir die Objectinstanz(oder wie das heißt) vom EditText. Das wäre sowas wie [E@bd45e09]

chrisdo007 hat dir schon den richtigen Tipp gegeben.
Aber für die Zukunft hättest du mit dem Logcat und einem Log.d("","zahl1.toString()"); selber alles gesehen :)


regards
 
chrisdo007 schrieb:
mach mal:

//genaue funktion grad nicht im Kopf
int z1 = Integer.parseInt(zahl1.getText());
dann bekomme ich den fehler:

"The method parseInt(String) in the type Integer is not applicable for the arguments (Editable)"

Was kann ich da machen? :confused:
 
Wir sind nicht hier, um für dich zu coden.

Bitte setzt dich mit der API auseinander. Das wirste früher oder später müssen :)

HIER kannste was zum EditText.getText() lesen. Da steht als Rückgabewert ganz klar ein Editable Object. Und dein Methodenaufruf Integer.parseInt(String) erwartet ein String, es kann mit Editable nichts anfangen. (Damit wär der Fehler erklärt oder?)

Hoffe das reicht als Denkanreiz.

regards
 
Integer.parseInt(zahl1.getText().toString());

Die TextViews geben CharSequences zurück, daher muss da noch ein toString() hinter
 
richtig :)

Der ThreadErsteller will ja sicher auch noch selbst was lernen.
 

Ähnliche Themen

B
  • Beka1801
Antworten
1
Aufrufe
576
jogimuc
J
P
Antworten
3
Aufrufe
2.431
swa00
swa00
Outlaw
  • Outlaw
Antworten
2
Aufrufe
762
Outlaw
Outlaw
Zurück
Oben Unten