在android中编辑文本时只允许数字和句点(.)

Sud*_*Som 20 android

我想在android编辑文本中只允许数字和句点(.).如何做到这一点......任何身体都可以帮助吗?

Chi*_*ara 77

你应该使用att:

机器人:位数= "0123456789".

http://developer.android.com/reference/android/widget/TextView.html#attr_android:digits

  • 这帮了很多忙!在我的情况下,我必须通过代码设置它,所以如果有人需要这样做,这是如下:`KeyListener keyListener = DigitsKeyListener.getInstance("0123456789.");`.然后`editText.setKeyListener(keyListener);` (4认同)
  • 到目前为止,您已经拥有了最清晰的解决方案......我认为这可以比公认的解决方案更简洁地回答数百个问题. (2认同)

小智 12

我在my_class.xml中的textedit中设置了这两行

android:inputType="numberDecimal"
android:digits="0123456789."
Run Code Online (Sandbox Code Playgroud)

第一行用于设置keybordart(仅限数字和点).第二行只允许预定的字符.


Har*_*elm 9

使用android:inputType ="numberDecimal".编辑:看到您后来写道,您想将其用作IP编号的编辑文本.那不要使用我的解决方案.对于"数字"(不是数字)加上点,这将不起作用.


小智 7

使用android:numeric属性.

这是一个例子http://www.androidpeople.com/android-edittext-numeric/

  • 这不适用于作者想要的IP地址.只允许一个点...... (2认同)

Raj*_*jat 7

你需要让你的EditText为numberSignednumberDecimal.在xml文件中添加此行 -

android.inputType="numberSigned|numberDecimal"
Run Code Online (Sandbox Code Playgroud)

完成:-)


num*_*um1 1

EditText 派生自TextView,它具有

void addTextChangedListener(TextWatcher watcher)
Run Code Online (Sandbox Code Playgroud)

方法。TextWatcher有回调,例如

abstract void afterTextChanged(Editable s)
Run Code Online (Sandbox Code Playgroud)

您可以实施它以过滤新文本以仅包含数字和句点。

  • android:digits 是完成完全相同事情的更简洁的方法。 (7认同)