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