Задать программные коды EditText
Я по существу пытаюсь программно установить значение цифр в EditText. До сих пор я:
weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());
Это хорошо, но я также хочу иметь возможность использовать десятичное место (.). Любые идеи?
Ответы
Ответ 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
Ответ 3
Используйте InputType.TYPE_NUMBER_FLAG_DECIMAL
.
Также см.: Типы входных данных.
Ответ 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" />