我想在android编辑文本中仅允许数字和句点(。)。如何做到这一点......任何人都可以帮忙吗?
答案 0 :(得分:75)
你应该使用att:
机器人:位数= “0123456789”
http://developer.android.com/reference/android/widget/TextView.html#attr_android:digits
答案 1 :(得分:11)
我在my_class.xml
中的textedit中设置了这两行android:inputType="numberDecimal"
android:digits="0123456789."
第一行用于设置keybordart(仅限数字和点)。 第二行只允许预定的字符。
答案 2 :(得分:9)
使用android:inputType="numberDecimal"
。
editText
的IP号码。那不要使用我的解决方案。对于“数字”(不是数字)加上点,这将不起作用。
答案 3 :(得分:7)
使用android:numeric属性。
这是一个示例http://www.androidpeople.com/android-edittext-numeric/
答案 4 :(得分:7)
您需要将EditText设为 numberSigned 和 numberDecimal 。在xml文件中添加此行 -
android.inputType="numberSigned|numberDecimal"
完成: - )
答案 5 :(得分:2)
目前,特定的默认输入类型(数字,电话号码)使用KeyListener。您只需实施它来验证您的数据,并在EditText中使用setKeyListener。
答案 6 :(得分:1)
EditText派生自TextView,其中包含
void addTextChangedListener(TextWatcher watcher)
方法。 TextWatcher有回调,例如
abstract void afterTextChanged(Editable s)
您可以实施以便过滤新文本以仅包含数字和句点。
答案 7 :(得分:0)
我找到了一个初步的解决方案。
单击设计视图中的EditText
,然后在最右侧找到输入属性。
选择Number
和textWebEditText
。尽管它与为纯数字设置的输入类型的视图不同,但它不需要每次都按下键盘左下角的数字按钮。
另外,与仅具有数字属性设置的EditText不同,因此'。'显示句点或小数符号但不能选择,此输入选择允许'。'符号是可选择的。
Bellow是XML属性:
android:inputType="number|textWebEditText"
android:numeric="integer"
将数字属性设置为整数不是完成此操作所必需的,但我只是将其作为额外设置包含在内以强制它。我只在EditText中接收IP地址,所以我只需要数字。如果您的解决方案需要考虑的不仅仅是严格的整数,那么我就不会包含该行并找到另一个设置,可能decimal
更适合您的数据。
请注意,因为此解决方案使其工作并且不一定强制输入格式(即 - >用户可以输入'。'是的,但是对于多少时间没有限制'。'可以输入 - >因此当你接受输入并将其用于Socket或Web Programming时会导致错误。在将输入分配给IP地址或类似的东西之前,可能需要进一步的输入检查和循环。把它放在那里。