1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Rechner

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von loirad, 24.08.2011.

  1. loirad, 24.08.2011 #1
    loirad

    loirad Threadstarter Neuer Benutzer

    Beiträge:
    9
    Erhaltene Danke:
    0
    Registriert seit:
    24.08.2011
    Phone:
    HTC Wildfire S
    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
    
     
  2. chrisdo007, 25.08.2011 #2
    chrisdo007

    chrisdo007 Android-Hilfe.de Mitglied

    Beiträge:
    80
    Erhaltene Danke:
    5
    Registriert seit:
    13.02.2011
    Phone:
    Motorola Defy
    mach mal:

    //genaue funktion grad nicht im Kopf
    int z1 = Integer.parseInt(zahl1.getText());
     
  3. maniac103, 26.08.2011 #3
    maniac103

    maniac103 Android-Lexikon

    Beiträge:
    1,237
    Erhaltene Danke:
    1,157
    Registriert seit:
    24.01.2011
    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
     
  4. Neeldarax, 26.08.2011 #4
    Neeldarax

    Neeldarax Erfahrener Benutzer

    Beiträge:
    170
    Erhaltene Danke:
    31
    Registriert seit:
    07.12.2010
    Hi loirad,

    "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
     
  5. loirad, 26.08.2011 #5
    loirad

    loirad Threadstarter Neuer Benutzer

    Beiträge:
    9
    Erhaltene Danke:
    0
    Registriert seit:
    24.08.2011
    Phone:
    HTC Wildfire S
    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:
     
  6. Neeldarax, 26.08.2011 #6
    Neeldarax

    Neeldarax Erfahrener Benutzer

    Beiträge:
    170
    Erhaltene Danke:
    31
    Registriert seit:
    07.12.2010
    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
     
  7. sellfisch, 26.08.2011 #7
    sellfisch

    sellfisch Neuer Benutzer

    Beiträge:
    18
    Erhaltene Danke:
    1
    Registriert seit:
    22.02.2011
    Phone:
    HTC Desire
    Integer.parseInt(zahl1.getText().toString());

    Die TextViews geben CharSequences zurück, daher muss da noch ein toString() hinter
     
  8. chrisdo007, 29.08.2011 #8
    chrisdo007

    chrisdo007 Android-Hilfe.de Mitglied

    Beiträge:
    80
    Erhaltene Danke:
    5
    Registriert seit:
    13.02.2011
    Phone:
    Motorola Defy
    richtig :)

    Der ThreadErsteller will ja sicher auch noch selbst was lernen.
     

Diese Seite empfehlen