webentwicklung-frage-antwort-db.com.de

wie kann ich nur einen numerischen Wert für Edittext in Android einstellen?

Ich habe einen edittext, in den nur Integer-Werte eingefügt werden sollen. Kann mir jemand sagen, welche Immobilie ich benutzen muss?

184
Sourabh

Ich denke Android:inputType="number" bei den XML-Attributen.

373
Utyi

Zum Beispiel:

<EditText
Android:id="@+id/myNumber"
Android:digits="0123456789."
Android:inputType="numberDecimal"
/>
116
barmaley

Im Code könnten Sie das tun

ed_ins.setInputType(InputType.TYPE_CLASS_NUMBER);
103
Sourabh

Verwenden Sie Android:inputType="numberPassword" zusammen mit editText.setTransformationMethod(null); nur für die Eingabe von Ziffern, um das automatische Ausblenden der Nummer zu entfernen. 

ODER 

Android:inputType="phone"

Ich empfinde diese beiden Möglichkeiten für die Eingabe von Ziffern als für Android:inputType="number". Die Einschränkung der Erwähnung von "number" als inputType besteht darin, dass die Tastatur auf Zeichen umschalten kann und auch andere Sonderzeichen eingegeben werden können. "numberPassword" inputType hat diese Probleme nicht, da die Tastatur nur Ziffern enthält. Selbst "phone" inputType funktioniert, da Sie über die Tastatur nicht auf Zeichen umschalten können. Sie können jedoch immer noch Sonderzeichen wie +, /, N usw. eingeben. 

Android: inputType = "numberPassword" mit editText.setTransformationMethod (null); 

 inputType="numberPassword"

inputType = "phone"

 inputType="phone"

inputType = "number"

 inputType="number"

23
abhiank
Android:inputType="numberDecimal"
6
Nafiz
<EditText
Android:id="@+id/age"
Android:numeric="integer" 
/>
3
Sandeep V

Wenn nur Personen von 0 bis 9 mit imeOptions aktivieren möchten, verwenden Sie die untere Zeile in Ihrer EditText

Android: inputType = "number | none"

Dies erlaubt nur die Anzahl und wenn Sie auf die Schaltfläche Fertig/Weiter klicken, wird der Fokus zum nächsten Feld verschoben.

2
Sandeep

durch die Verwendung des Folgenden kann Ihr Problem besser gelöst werden.

in xml:

<EditText
      Android:id="@+id/age"
      Android:inputType="numberDecimal|numberSigned"        />

oder // in Aktivität innerhalb von etfield.addtextchangelistener

     private String blockCharacterSet="+(/)N,*;#";//declare globally
               try {
                for (int i = 0; i < s.length(); i++) {


                    if (blockCharacterSet.contains(s.charAt(i) + "")) {

                        String corrected_settempvalue = arrivalsettemp.substring(0, arrivalsettemp.length() - 1);
                        et_ArrivalSetTemp.setText(corrected_settempvalue);
                        if (corrected_settempvalue.length() != 0)
                            et_ArrivalSetTemp.setSelection(corrected_settempvalue.length());

                    }
                }
            } catch (Exception d) {
                d.printStackTrace();
            }
2
Rushi Ayyappa

Sie können es in XML verwenden

<EditText
 Android:id="@+id/myNumber"
 Android:digits="123"
 Android:inputType="number"
/>

oder,

Android:inputType="numberPassword" along with editText.setTransformationMethod(null); to remove auto-hiding of the number.

oder,

Android:inputType="phone"

Programmgesteuert können Sie verwenden
editText.setInputType (InputType.TYPE_CLASS_NUMBER);

0
Rubela Shome

Ich muss mit TextWatcher auf einer Tastatur die Eingabetaste drücken. Aber ich habe herausgefunden, dass alle numerischen Tastaturen Android: inputType = "number" oder "numberDecimal" oder "numberPassword" e.t.c. Erlaube mir nicht, die Eingabetaste abzufangen, wenn der Benutzer sie drückt.

Ich habe Android:digits="0123456789\n" ausprobiert, und alle numerischen Tastaturen funktionierten mit Enter und TextWatcher.

Mein Weg ist also:

Android:digits="0123456789\n"
Android:inputType="numberPassword"

plus editText.setTransformationMethod(null)

Danke an barmaley und abhiank.

0
Alexander Key