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

时间:2010-12-29 05:42:03

标签: android

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

8 个答案:

答案 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,然后在最右侧找到输入属性。

选择NumbertextWebEditText。尽管它与为纯数字设置的输入类型的视图不同,但它不需要每次都按下键盘左下角的数字按钮。

另外,与仅具有数字属性设置的EditText不同,因此'。'显示句点或小数符号但不能选择,此输入选择允许'。'符号是可选择的。

Bellow是XML属性:

android:inputType="number|textWebEditText"

android:numeric="integer"

将数字属性设置为整数不是完成此操作所必需的,但我只是将其作为额外设置包含在内以强制它。我只在EditText中接收IP地址,所以我只需要数字。如果您的解决方案需要考虑的不仅仅是严格的整数,那么我就不会包含该行并找到另一个设置,可能decimal更适合您的数据。

请注意,因为此解决方案使其工作并且不一定强制输入格式(即 - >用户可以输入'。'是的,但是对于多少时间没有限制'。'可以输入 - >因此当你接受输入并将其用于Socket或Web Programming时会导致错误。在将输入分配给IP地址或类似的东西之前,可能需要进一步的输入检查和循环。把它放在那里。