У меня есть edittext
, в котором я хочу вставить только целые значения. Может кто-нибудь сказать мне, какое свойство я должен использовать?
Как установить только числовое значение для edittext в android?
Ответ 1
Я думаю, android:inputType="number"
в атрибутах xml.
Ответ 2
Например:
<EditText
android:id="@+id/myNumber"
android:digits="0123456789."
android:inputType="numberDecimal"
/>
Ответ 3
В коде вы можете сделать
ed_ins.setInputType(InputType.TYPE_CLASS_NUMBER);
Ответ 4
Для ввода только цифр используйте android:inputType="numberPassword"
вместе с editText.setTransformationMethod(null);
, чтобы удалить автоматическое скрытие номера.
ИЛИ
android:inputType="phone"
Для ввода только цифр я считаю, что эти пары лучше, чем android:inputType="number"
. Ограничение упоминания "number" как inputType заключается в том, что клавиатура позволяет переключаться на символы, а также вводить другие специальные символы. "numberPassword" inputType не имеет этих проблем, поскольку на клавиатуре отображаются только цифры. Даже "phone" inputType работает, поскольку клавиатура не позволяет вам переключиться на символы. Но вы все равно можете ввести пару специальных символов, таких как +,/, N и т.д.
android: inputType = "numberPassword" с editText.setTransformationMethod(null);
inputType = "телефон"
inputType = "число"
Ответ 5
android:inputType="numberDecimal"
Ответ 6
<EditText
android:id="@+id/age"
android:numeric="integer"
/>
Ответ 7
используя ниже, может лучше решить вашу проблему;
в xml:
<EditText
android:id="@+id/age"
android:inputType="numberDecimal|numberSigned" />
или//в операции внутри 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();
}
Ответ 8
Если кто-то хочет использовать только число от 0 до 9 с поддержкой imeOptions
, то используйте строку ниже в EditText
Android: inputType = "номер | ни"
Это позволит только номер, и если вы нажмете кнопку "done/next" на клавиатуре, ваш фокус переместится в следующее поле.
Ответ 9
самый простой для меня
android:numeric="integer"
хотя это также настраивает
android:digits="0123456789"