Установить цифры EditText программно - PullRequest
75 голосов
/ 04 сентября 2011

Я по сути пытаюсь установить значение цифр EditText программно.На данный момент у меня есть:

weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());

Это нормально, но я также хочу иметь возможность включать десятичный знак (.).Есть идеи?

Ответы [ 4 ]

170 голосов
/ 04 сентября 2011

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

<EditText
    android:inputType="number"
    android:digits="0123456789."
/>

Из кода:

weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789."));

Но это позволяет пользователю включать несколько "." См. JoeyRA ответ для реальных чисел.

27 голосов
/ 06 февраля 2014

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

weightInput.setInputType(InputType.TYPE_CLASS_NUMBER);          
weightInput.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);           
weightInput.setKeyListener(DigitsKeyListener.getInstance(false,true));

public static DigitsKeyListener getInstance (boolean sign, boolean decimal) 

Возвращает DigitsKeyListener, который принимает цифры от 0 до 9, плюс знак минус (только в начале) и / или десятичную точку (только одинза поле), если указано.

Это решит проблему со многими '.'в EditText

20 голосов
/ 04 сентября 2011

Использование InputType.TYPE_NUMBER_FLAG_DECIMAL.

См. Также: Типы ввода .

4 голосов
/ 23 декабря 2012

Для ввода IP-адреса (несколько точек и цифр)

попробовать

<EditText
    android:id="@+id/ipBox"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="@string/ipAddrHint"
    android:inputType="numberDecimal|number"
    android:digits="0123456789."
    android:textSize="30sp" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...