Установите edittext, используя программно только ", 0123456789" в Android?

Мой вопрос таков.

Я могу сказать в 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.

Ответы

Ответ 1

попробуйте customEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);

Ответ 2

EditText ed;
ed.setInputType(InputType.TYPE_CLASS_NUMBER);

также docs может помочь

Ответ 3

В соответствии с документацией на 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);

Ответ 4

Вы попробовали customEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER)?

Ссылка: InputType

Ответ 5

Попробуйте добавить android:inputType="number" в макет xml к вашей EditText (ссылке)