以编程方式设置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" />