Risposte:
Immagino android:inputType="number"
gli attributi XML.
android:inputType="phone"
al posto di quello. Ma sembra un po 'più "occupato".
Per esempio:
<EditText
android:id="@+id/myNumber"
android:digits="0123456789."
android:inputType="numberDecimal"
/>
0123456789.
0123456780.
Per inserire solo cifre utilizzare android:inputType="numberPassword"
insieme a editText.setTransformationMethod(null);
per nascondere il numero nascosto automaticamente.
O
android:inputType="phone"
Per l'immissione di sole cifre, sento che questi modi in coppia sono migliori di android:inputType="number"
. La limitazione di menzionare "numero" come inputType è che la tastiera consente di passare a caratteri e consente anche di inserire altri caratteri speciali. "numberPassword" inputType non presenta questi problemi in quanto la tastiera mostra solo cifre. Anche "phone" inputType funziona in quanto la tastiera non consente di passare ai caratteri. Puoi comunque inserire caratteri speciali di coppia come +, /, N, ecc.
android: inputType = "numberPassword" con editText.setTransformationMethod (null);
InputType = "telefono"
InputType = "numero"
android:inputType="numberPassword"
insieme aeditText.setTransformationMethod(null);
android:inputType="numberDecimal"
<EditText
android:id="@+id/age"
android:numeric="integer"
/>
l'uso del sotto può risolvere meglio il tuo problema;
in xml:
<EditText
android:id="@+id/age"
android:inputType="numberDecimal|numberSigned" />
o // in attività all'interno di 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();
}
Se qualcuno desidera utilizzare solo numeri da 0 a 9 con imeOptions
abilitazione, utilizzare la riga sotto nel proprioEditText
Android: InputType = "Numero | none"
Ciò consentirà solo il numero e se si fa clic sul pulsante Fine / successivo della tastiera, lo stato attivo passerà al campo successivo.
Puoi usarlo in XML
<EditText
android:id="@+id/myNumber"
android:digits="123"
android:inputType="number"
/>
o,
android:inputType="numberPassword" along with editText.setTransformationMethod(null); to remove auto-hiding of the number.
o,
android:inputType="phone"
A livello di programmazione è possibile utilizzare
editText.setInputType (InputType.TYPE_CLASS_NUMBER);
Devo intercettare premendo Invio su una tastiera con TextWatcher . Ma ho scoperto che tutte le tastiere numeriche android: inputType = "number" o "numberDecimal" o "numberPassword" ecc. Non mi permettono di catturare Enter quando l'utente lo preme.
Ho provato android:digits="0123456789\n"
e tutte le tastiere numeriche hanno iniziato a funzionare con Enter e TextWatcher.
Quindi il mio modo è:
android:digits="0123456789\n"
android:inputType="numberPassword"
più editText.setTransformationMethod(null)
Grazie a Barmaley e Abhiank.
Non so quale sia stata la risposta corretta nel '13, ma oggi lo è:
myEditText.setKeyListener(DigitsKeyListener.getInstance(null, false, true)); // positive decimal numbers
Ottieni tutto, compresa la tastiera su schermo è un tastierino numerico.
Quasi tutto. Espresso, nella sua infinita saggezza, lascia typeText("...")
inspiegabilmente bypassare il filtro ed entra nella spazzatura ...
il più semplice per me
android:numeric="integer"
sebbene anche questo personalizzi di più
android:digits="0123456789"