Wie gebe ich ein int von EditText zurück? (Android)


70

Grundsätzlich möchte ich einen EditText in Android, in den ich einen ganzzahligen Wert eingeben kann. Vielleicht gibt es dafür ein passenderes Objekt als EditText?

Antworten:


147

Verwenden Sie vorerst eine EditText. Verwenden android:inputType="number"Sie diese Option, um die numerische Darstellung zu erzwingen. Konvertieren Sie die resultierende Zeichenfolge in eine Ganzzahl (z Integer.parseInt(myEditText.getText().toString()). B. ).

In Zukunft könnten Sie ein NumberPickerWidget in Betracht ziehen , sobald es verfügbar ist (voraussichtlich in Honeycomb).


Wissen Sie in Java auf Anhieb, was das ganzzahlige Äquivalent des andT-Attributs "number" inputType ist? (dh: EditText.setInputType (Ganzzahl)). Vielen Dank.
Rob S.

@Rob S.: InputType.TYPE_CLASS_NUMBER, Wie in der Dokumentation angegeben.
CommonsWare

7
Ich denke, dies sollte erweitert werden, um Fälle zu berücksichtigen, in denen der editText keinen Wert hat (dh editText.getText () == "").
user1923613

4
Eine Ausnahme wird ausgelöst, wenn der Edittext null ist. Beim Geben wie Integer.parseInt (myEditText.getText (). ToString ())
Sharath

10

Setzen Sie das Ziffernattribut auf true, wodurch nur Zahleneingaben zulässig sind.

Dann tun Sie Integer.valueOf(editText.getText()), um einen int-Wert herauszuholen.


5
Verursacht dies keinen The method valueOf(String) in the type Integer is not applicable for the arguments (Editable)Fehler?
Zhangxaochen

2
@zhangxaochen - getText()ist kein String. Es wird benötigt, um anzurufengetText().toString()
Janusz Hain

9

Holen Sie sich zuerst eine Zeichenfolge aus einem EDITTEXT und konvertieren Sie diese Zeichenfolge dann in eine Ganzzahl wie

      String no=myTxt.getText().toString();       //this will get a string                               
      int no2=Integer.parseInt(no);              //this will get a no from the string

0

Sie können dies in 2 Schritten tun:

1: Ändern Sie den Eingabetyp (in Ihrem EditTextFeld) in der Layoutdatei inandroid:inputType="number"

2: Verwenden int a = Integer.parseInt(yourEditTextObject.getText().toString());


Wie andere Antworten gezeigt haben, ist es wirklich eher ein "und" als ein "oder", oder? Wenn Sie 1 ausführen, müssen Sie noch 2 ausführen. Das XML kann nicht ändern, was Sie als Rückgabetyp in Java erhalten. Wenn Sie 2 ausführen, möchten Sie 1 ausführen, um eine sichere Eingabe zu gewährleisten. Sie müssen immer 2 machen und es ist am besten, einfach beides zu machen.
Tim M.

Danke Tim, es war ein Tippfehler!
Girish BR

(Um diese Kommentare in einen Zusammenhang zu bringen, wurde das Problem seitdem über die Bearbeitung behoben.)
Tim M.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.