Подтвердить что ты не робот

Разрешить только число и период (.) в редактировании текста в android

Я хочу разрешить только номера и период (.) в тексте редактирования android. Как это сделать.. может ли любой орган помочь?

4b9b3361

Ответ 1

EditText получен из TextView, который имеет

void addTextChangedListener(TextWatcher watcher)

метод. TextWatcher имеет обратные вызовы, например

abstract void afterTextChanged(Editable s)

который вы можете реализовать, чтобы фильтровать новый текст, чтобы содержать только числа и период.

Ответ 3

Я установил эти две строки в textedit из моего my_class.xml

android:inputType="numberDecimal"
android:digits="0123456789."

первая строка предназначена для установки keybordart (только числа и точка). вторая строка допускает только предопределенные символы.

Ответ 4

Используйте android:inputType="numberDecimal".

РЕДАКТИРОВАТЬ: увидел, что вы позже написали, что вы хотите использовать это как editText для IP-номеров. Тогда не используйте мое решение. Для "цифр" (не цифр) плюс точка это не сработает.

Ответ 6

Вам нужно сделать свой EditText как numberSigned и numberDecimal. Добавьте эту строку в свой XML файл -

android.inputType="numberSigned|numberDecimal"

Готово: -)

Ответ 7

В настоящее время конкретные типы ввода по умолчанию (числовые, номер телефона) используют KeyListener. Вам просто нужно выполнить его, чтобы проверить свои данные, и использовать setKeyListener в вашем EditText.

Ответ 8

Я нашел предварительное решение.

Нажмите на EditText в представлении проекта, а затем найдите свойство ввода в правом углу.

Выберите Number и textWebEditText. Хотя это будет не то же самое, что представление типа ввода, заданного для чисто чисел, но оно устраняет процесс нажатия кнопки номера в левом нижнем углу клавиатуры каждый раз.

Кроме того, в отличие от EditText, у которого есть только свойство номера, и, таким образом, '.' период или десятичный символ, но не может быть выбран, этот выбор ввода позволяет использовать ".". символ, подлежащий выбору.

Bellow - это свойство XML:

android:inputType="number|textWebEditText"

android:numeric="integer"

Установка числового свойства в integer не требуется для выполнения этого, но я просто включил его в качестве дополнительной настройки, чтобы принудительно его использовать. Я только принимаю IP-адрес в EditText, поэтому мне нужны только номера. Если ваше решение должно учитывать больше, чем строго целые числа, то я бы не включил эту строку и нашел другую настройку, возможно, decimal, которая была бы более подходящей для ваших данных.

Обратите внимание, что, поскольку это решение заставляет его работать и не обязательно форсирует формат ввода, (т.е. → пользователь может ввести "." да, но нет предела тому,. 'может быть введено → таким образом, это может вызвать ошибку при вводе и использовании ее для Socket или веб-программирования. Для ввода ввода на IP-адрес или что-то подобное может потребоваться дополнительная проверка ввода и петли. что там.