如何在android中只设置edittext的数值?

时间:2011-01-10 09:06:12

标签: android android-edittext

我有edittext,其中我只想插入整数值。有人可以告诉我我必须使用哪个属性吗?

12 个答案:

答案 0 :(得分:380)

我猜xml属性为android:inputType="number"

答案 1 :(得分:122)

例如:

<EditText
android:id="@+id/myNumber"
android:digits="0123456789."
android:inputType="numberDecimal"
/>

答案 2 :(得分:104)

在代码中,您可以

ed_ins.setInputType(InputType.TYPE_CLASS_NUMBER);

答案 3 :(得分:25)

仅针对数字输入使用android:inputType="numberPassword"editText.setTransformationMethod(null);来删除号码的自动隐藏。

OR

android:inputType="phone"

对于仅数字输入,我觉得这些方式比android:inputType="number"好。提及&#34;数字&#34;的限制inputType是键盘允许切换到字符,也可以输入其他特殊字符。 &#34; numberPassword&#34; inputType没有这些问题,因为键盘只显示数字。甚至&#34;电话&#34; inputType适用于键盘不允许切换到字符。但你仍然可以输入几个特殊字符,如+,/,N等。

使用 editText.setTransformationMethod(null);

inputType="numberPassword"

<强>的inputType =&#34;电话&#34;

inputType="phone"

<强>的inputType =&#34;数&#34;

inputType="number"

答案 4 :(得分:6)

android:inputType="numberDecimal"

答案 5 :(得分:4)

<EditText
android:id="@+id/age"
android:numeric="integer" 
/>

答案 6 :(得分:2)

使用以下内容可以更好地解决您的问题;

xml中的

<EditText
      android:id="@+id/age"
      android:inputType="numberDecimal|numberSigned"        />

或//在etfield.addtextchangelistener

内的活动中
     private String blockCharacterSet="+(/)N,*;#";//declare globally
               try {
                for (int i = 0; i < s.length(); i++) {


                    if (blockCharacterSet.contains(s.charAt(i) + "")) {

                        String corrected_settempvalue = arrivalsettemp.substring(0, arrivalsettemp.length() - 1);
                        et_ArrivalSetTemp.setText(corrected_settempvalue);
                        if (corrected_settempvalue.length() != 0)
                            et_ArrivalSetTemp.setSelection(corrected_settempvalue.length());

                    }
                }
            } catch (Exception d) {
                d.printStackTrace();
            }

答案 7 :(得分:2)

如果有人想在imeOptions启用时仅使用0到9之间的数字,请在EditText

中使用以下行
  

机器人:的inputType =&#34;数|无&#34;

这将只允许数字,如果您点击键盘的完成/下一个按钮,您的焦点将移动到下一个字段。

答案 8 :(得分:2)

尝试以下代码:

Edittext_name.setKeyListener(DigitsKeyListener.getInstance("0123456789"));

它将允许您输入数字。您不能输入字符。 如果要输入字符而不是数字,则可以编辑getInstance中引号之间的值。

答案 9 :(得分:0)

我需要赶紧使用TextWatcher在键盘上按Enter键。但我发现所有数字键盘android:inputType =“ number”或“ numberDecimal”或“ numberPassword”等不允许我在用户按下Enter时看到它。

我尝试了android:digits="0123456789\n",所有数字键盘都开始与Enter和TextWatcher一起使用。

所以我的方法是:

android:digits="0123456789\n"
android:inputType="numberPassword"

editText.setTransformationMethod(null)

感谢barmaley和abhiank。

答案 10 :(得分:0)

我不知道'13的正确答案是什么,但是今天是:

myEditText.setKeyListener(DigitsKeyListener.getInstance(null, false, true)); // positive decimal numbers

您将获得一切,包括屏幕键盘是数字小键盘。

ALMOST一切。浓缩咖啡具有无限的智慧,可以让typeText("...")莫名其妙地绕过过滤器并输入垃圾...

答案 11 :(得分:-3)

对我来说最简单

android:numeric="integer" 

虽然这也更加自定义

android:digits="0123456789"