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

Задать программные коды EditText

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

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

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

4b9b3361

Ответ 1

Попробуйте следующее:

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

Из кода:

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

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

Ответ 2

Попробуйте следующее:

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

Ответ 4

Для ввода 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" />