14

我的问题是这个。

我可以用xml说

android:digits="0123456789,"

但这一次我必须通过 java 代码添加它。

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

不工作。应用程序给了我与 android:InputType="number" 相同的结果

那么有没有其他方法可以用java说android:digits?

已编辑

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

我的问题是我如何才能android:digits="0123456789,"使用 java。

在这一点上,我不在乎用户是否可以看到字符。我只希望我的 edittext 字段只接受 0 到 9 的数字和十进制逗号 (,)。

由于 customEdittext 真的是一个自定义的编辑文本,我不能使用 xml atm。

4

5 回答 5

11

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

于 2012-07-17T09:16:42.383 回答
3
EditText ed;
ed.setInputType(InputType.TYPE_CLASS_NUMBER);

文档也可能有所帮助

于 2012-07-17T09:19:07.603 回答
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);
于 2015-02-23T20:33:42.400 回答
0

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

参考:输入类型

于 2012-07-17T09:20:59.160 回答
-1

尝试将android:inputType="number"xml 布局添加到您的EditText(链接)

于 2012-07-17T09:25:57.863 回答