【发布时间】:2011-03-25 01:55:42
【问题描述】:
我已将输入类型设置为 numberdecimal,但还想以编程方式使用“-”填充 editText。我可以添加文本,但我无法编辑文本,因为它不能确认数字十进制格式。关于如何说 inputtype 是 numberdecimal 但可以允许使用“-”的任何想法?
【问题讨论】:
标签: android
我已将输入类型设置为 numberdecimal,但还想以编程方式使用“-”填充 editText。我可以添加文本,但我无法编辑文本,因为它不能确认数字十进制格式。关于如何说 inputtype 是 numberdecimal 但可以允许使用“-”的任何想法?
【问题讨论】:
标签: android
我可以通过如下设置digits xml 属性来实现这种行为:
<EditText
...
android:inputType="number"
android:digits="0123456789-"/>
以编程方式设置 (Set EditText Digits Programmatically):
weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789-"));
【讨论】:
我设法做到了:
android:inputType="number|numberSigned"
android:digits="0123456789-"
【讨论】:
我找到了一个非常简单的解决方案:
editText.setKeyListener(new DigitsKeyListener(true, true));
第一个true是有符号输入,第二个true是十进制。
希望有帮助
【讨论】:
您必须编写自己的KeyListener。您可以从NumberKeyListener 中的downloading the source 开始,然后从那里获取。
马丁
【讨论】:
我有一个解决方案,可能会对您有所帮助:
假设,您想输入 2-3 个带“-”号的数字,例如203-304-405.23-232.45,
然后允许用户在不设置任何属性的情况下在 EditText 中输入此内容。
然后您可以使用“split()”函数分隔每个数字,但请确保标记之间应该有任何分隔符。
然后
String tokens[];
strInput = edittext1.getText.toString();
tokens = strInput.split(",");
然后您可以将每个令牌分别作为令牌[0]、令牌[1]、 例如:
num1 = tokens[0];
num2 = tokens[1];
希望对你有所帮助。
享受!!
【讨论】: