我本质上是试图以编程方式设置EditText的数字值。到目前为止,我有:
weightInput.setInputType(InputType.TYPE_CLASS_PHONE);
weightInput.setKeyListener(DigitsKeyListener.getInstance());
很好,但我也希望能够包含小数点(。)。有任何想法吗?
Answers:
试试这个:
<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" />
DialerKeyListener
,而不是DigitsKeyListener