以编程方式设置EditText数字
我基本上试图以编程方式设置EditText的数字值。 到目前为止我有:
weightInput.setInputType(InputType.TYPE_CLASS_PHONE); weightInput.setKeyListener(DigitsKeyListener.getInstance());
这是好的,但我也希望能够包括一个小数位(。)。 有任何想法吗?
尝试这个:
<EditText android:inputType="number" android:digits="0123456789." />
从代码:
weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789."));
但是,它允许用户包含几个“。” 查看Muffinbubble对实数的回答。
尝试这个:
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中
使用InputType.TYPE_NUMBER_FLAG_DECIMAL
。
另请参阅: inputtypes 。
对于IP地址input(多点和数字)
尝试
<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" />