如何将输入类型设置为numberdecimal,但也允许“ - ”

时间:2010-08-04 04:55:11

标签: android

我已将输入类型设置为numberdecimal,但也希望以编程方式使用“ - ”填充editText。我可以添加文本,但后来我无法编辑文本,因为它没有确认数字十进制格式。关于我怎么说inputtype的任何想法都是numberdecimal但是可以允许“ - ”?

5 个答案:

答案 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 sourceNumberKeyListener开始,然后从那里获取。

马丁

答案 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];

希望这会对你有所帮助。

享受!!