我的问题是这个。
我可以说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。
答案 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_NUMBER
和TYPE_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"
添加到EditText
(link)