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

bsc*_*han 10 android

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

7hn*_*hny 29

我可以通过设置digitsxml属性来实现此行为,如下所示:

<EditText
    ...
    android:inputType="number"
    android:digits="0123456789-"/>
Run Code Online (Sandbox Code Playgroud)

以编程方式设置它(以编程方式设置EditText数字):

weightInput.setKeyListener(DigitsKeyListener.getInstance("0123456789-"));
Run Code Online (Sandbox Code Playgroud)


Roy*_*yBS 7

我成功地做到了:

android:inputType="number|numberSigned"    
android:digits="0123456789-"
Run Code Online (Sandbox Code Playgroud)


Mar*_*tin 2

您必须编写自己的KeyListener。您可以首先下载NumberKeyListener源代码并从那里获取它。

马丁