我已将输入类型设置为numberdecimal,但也希望以编程方式使用“ - ”填充editText。我可以添加文本,但后来我无法编辑文本,因为它没有确认数字十进制格式。关于我怎么说inputtype的任何想法都是numberdecimal但是可以允许“ - ”?
答案 0 :(得分:27)
我可以通过设置digits
xml属性来实现此行为,如下所示:
<EditText
...
android:inputType="number"
android:digits="0123456789-"/>
以编程方式设置它(Set EditText Digits Programmatically):
weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789-"));
答案 1 :(得分:7)
我设法用:
android:inputType="number|numberSigned"
android:digits="0123456789-"
答案 2 :(得分:4)
我找到了一个非常简单的解决方案:
editText.setKeyListener(new DigitsKeyListener(true, true));
第一个true
用于是否为带符号输入,第二个true
用于十进制
希望有所帮助
答案 3 :(得分:3)
您必须自己编写KeyListener。您可以从downloading the source的NumberKeyListener开始,然后从那里获取。
马丁
答案 4 :(得分:1)
我有一个解决方案,可能对您有所帮助:
假设您要输入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];
希望这会对你有所帮助。
享受!!