在Android中以编程方式仅使用“,0123456789”设置edittext?

时间:2012-07-17 09:02:10

标签: java android digits

我的问题是这个。

我可以说xml

android:digits="0123456789,"

但是这次我要添加java代码。

customEditText.setKeyListener(DigitsKeyListener.getInstance("0123456789,"));

不起作用。应用程序给我的结果与android相同:InputType =“number”

那么有没有其他方法可以说android:使用java的数字?

EDITED

所以我的问题不是如何使用java获取android:InputType="number"

我的问题是如何让android:digits="0123456789,"与java一起使用。

此时我不在乎用户是否可以看到字符。我只希望我的edittext字段只接受0到9之间的数字和小数点逗号(,)。

由于customEdittext实际上是一个自定义的edittext,我不能使用xml atm。

5 个答案:

答案 0 :(得分:11)

尝试customEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);

答案 1 :(得分:3)

EditText ed;
ed.setInputType(InputType.TYPE_CLASS_NUMBER);

docs也可以提供帮助

答案 2 :(得分:1)

根据Android文档TYPE_NUMBER_FLAG_DECIMAL应该有效http://developer.android.com/reference/android/text/InputType.html

但是,如果仅使用TYPE_NUMBER_FLAG_DECIMAL,则用户也可以输入字母。

但幸运的是,Haresh Chaudhary提供了正确的答案,两者都必须使用,TYPE_CLASS_NUMBERTYPE_NUMBER_FLAG_DECIMAL。我尝试了解决方案,并且工作正常。

尽管我使用了setInputType而不是setRawInput:

yourEditText.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);

答案 3 :(得分:0)

你试过customEditText.setRawInputType(InputType.TYPE_CLASS_NUMBER)吗?

参考:InputType

答案 4 :(得分:0)

尝试将xml布局中的android:inputType="number"添加到EditTextlink