Ответ 1
попробуйте customEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
Мой вопрос таков.
Я могу сказать в xml
android:digits="0123456789,"
Но на этот раз я должен добавить код java.
customEditText.setKeyListener(DigitsKeyListener.getInstance("0123456789,"));
Не работает. Приложение дает мне такой же результат, как android: InputType = "number"
Итак, есть ли альтернативный способ сказать андроид: цифры с использованием java?
EDITED
Поэтому мой вопрос заключался не в том, как получить android:InputType="number"
с помощью java.
Мой вопрос в том, что я могу использовать android:digits="0123456789,"
для использования с java.
В этот момент мне все равно, могут ли пользователи видеть символы. Я просто хочу, чтобы мое поле edittext принимало только числа от 0 до 9 и десятичную запятую (,).
Из-за customEdittext действительно настроен edittext, я не могу использовать xml atm.
попробуйте customEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
EditText ed;
ed.setInputType(InputType.TYPE_CLASS_NUMBER);
также docs может помочь
В соответствии с документацией на Android TYPE_NUMBER_FLAG_DECIMAL
должна работать http://developer.android.com/reference/android/text/InputType.html
Однако это не так, если вы используете только TYPE_NUMBER_FLAG_DECIMAL
, пользователь сможет также вводить буквы.
Но, к счастью, Хареш Чаудхари, дайте правильный ответ, оба должны быть использованы TYPE_CLASS_NUMBER
, а также TYPE_NUMBER_FLAG_DECIMAL
. Я попробую решение hes, и оно сработало.
Хотя я использовал setInputType вместо setRawInput:
yourEditText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
Вы попробовали customEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER)
?
Ссылка: InputType
Попробуйте добавить android:inputType="number"
в макет xml к вашей EditText
(ссылке)