Текст редактирования принимает только числа, а не десятичные числа в android

Мой текст редактирования должен принимать только 3-значное число, а не любые другие десятичные числа. Я использовал ниже регулярное выражение, чтобы сделать это, но это даже принимает символы типа «.». а также "-". Итак, как избежать принятия десятичных значений?

pattern=Pattern.compile("[0-9]{0,2}"); 

Даже я установил текст редактирования

  android:digits="0123456789" android:inputType="number" 

Это не работает. Как решить?

Попробуй это:

 android:inputType="number|none" android:maxLength="3" android:digits="0123456789" 

Установите их в свой xml edittext …

 android:inputType="numberDecimal" android:maxLength="3" 

Я думаю, вы должны делать это программно с использованием класса TextWacher

 editText.addTextChangedListener(new TextWatcher() { Handler handler = new Handler(); Runnable delayedAction = null; @Override public void onTextChanged( CharSequence s, int start, int before, int count) {} @Override public void beforeTextChanged( CharSequence s, int start, int count, int after) {} @Override public void afterTextChanged( final Editable s) {} }); 

Установите это в свой EditText

 android:inputType:"number" android:maxLength:"3" 

Попытайтесь поместить это в объявление XML-объявления EditText:

 android:inputType="number|none" 

Наслаждайтесь кодированием 🙂

Вы можете использовать этот ответ для решения своей проблемы. Кроме того, чтобы ограничить количество цифр, которые вы можете использовать:

 android:maxLength="3" 

Как другие пользователи ответят вам выше.

Удачи