По сути, я пытаюсь программно установить значение цифр EditText. Пока у меня есть:
weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());
Это нормально, но я также хочу иметь возможность включать десятичный знак (.). Любые идеи?
android
android-edittext
Райандльф
источник
источник
DialerKeyListener
вместоDigitsKeyListener
Ответы:
Попробуй это:
<EditText android:inputType="number" android:digits="0123456789." />
Из кода:
weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789."));
Но он позволяет пользователю включать несколько "." Реальные числа см. В ответе JoeyRA .
источник
TextView
источники:// If no input type was specified, we will default to generic text, since we can't tell the IME about the set of digits that was selected.
.
после 9?Попробуй это:
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
источник
setInputType
снова и снова, не заменит ли второй на первый? Я думаю, вам стоит использовать,weightInput.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
но я не уверен на 100%Используйте
InputType.TYPE_NUMBER_FLAG_DECIMAL
.См. Также: Типы ввода .
источник
Для ввода 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" />
источник