2017-07-12 3 views
0

Ich überprüfte diese Web site auf, wie man von Zeichenkette zu Integerart in Java (android) umwandelt .... eins des Vorschlages war zu verwenden (integer.parseint) ich benutzte es und wenn ich mein laufe Anwendung sagt es meine App funktioniert nicht mehr meinen Code unten.EditText zu Integer in Android

public void clickable (View view){ 
      EditText mytext = (EditText) findViewById(R.id.Creat); 
      int number = Integer.parseInt(mytext.getText().toString()); 
      Toast.makeText(getApplicationContext(), number ,Toast.LENGTH_LONG).show(); 

    } 

Ich kann nicht herausfinden, was ist das Problem mit dem Code?!

+0

vielleicht az oder AZ Chracter in EditText –

+0

@RasoulMiri kein Charakter nicht überprüft i jedes Zeichen im Code Kleinbuchstaben oder Großbuchstaben –

+0

für convert String to Integer, String enthält nur 1234567890 –

Antwort

0

Welche Zeichenfolge übergeben Sie in die Integer.parseInt()? Wenn es keine ganze Zahl ist, wird Ihr Programm eine NumberFormatException auftreten. Ich bin mir nicht sicher, ob das das Problem hier ist, aber ich bin mir nicht sicher, was Sie in die Integer.parseInt() übergeben.

+0

ich passiere Zahlen, ist diese Art von Logikfehler, wie ich Zeichenfolge übergeben sollte, die in Ganzzahl konvertiert werden oder das ist nicht das cas? –

+0

Wie groß sind deine Zahlen? Wenn sie zu groß sind, wird das Programm weiterhin eine NumberFormatException auftreten, wenn die Zahlen zu groß sind, um in eine Ganzzahl zu passen. Was sind einige der Zahlen, die Sie versucht haben, zu übergeben? – Sempor

+0

nur 55, 88 und 5 nicht so groß –

1

Deklarieren Sie die Variable EditText mytext als globale Variable, und initialisieren Sie sie dann in der Oncreate() -Methode Ihrer Aktivität. Dann wird Ihr klickbare Methode sieht wie folgt aus:

public void clickable (View view){ 
     int number = Integer.parseInt(mytext.getText().toString()); 
     Toast.makeText(getApplicationContext(), mytext.getText().toString(), Toast.LENGTH_LONG).show(); 
} 

Obeserve Toast.makeText() -Methode Das zweite Argument ist die Ressource-ID der String-Ressource zu verwenden, oder es kann Text formatiert werden. In Ihrem Code haben Sie eine Ganzzahl als eine Ressourcen-ID übergeben, die nicht existiert. So erhalten Sie ResourcesNotFoundException.

0

Es gibt viele Implementierungen von Toast.makeText. Wie Sie ein int als zweites Argument sind vorbei, wird die folgende Implementierung ausführen:

Toast makeText(Context context, @StringRes int resId, @Duration int duration) 

Diese Implementierung ein ResourcesNotFoundException werfen, wenn es nicht eine Ressource mit der ID von resId finden.

Zur Ausgabe number als String Sie es konvertieren müssen:

Toast.makeText(getApplicationContext(), String.valueOf(number), Toast.LENGTH_LONG).show(); 
+0

wirklich Thx Mann .valueof (Nummer) arbeitete für mich :) :)) .... aber warum Parsenint nicht funktioniert?!?! –

+0

Ich kann kein Problem damit sehen. Sind Sie sicher, dass Sie ihm Ziffern aus dem EditText geben? Andernfalls erhalten Sie eine NumberFormatException – 345

+0

Sie können dies erzwingen, indem Sie dieses XML-Attribut auf Ihren EditText setzen - Android: inputType = "number" – 345