【问题标题】:Android: Edittext that only allows a digit from 1-9 [duplicate]Android:仅允许 1-9 中的数字的 Edittext [重复]
【发布时间】:2017-11-06 03:14:52
【问题描述】:

我正在寻找一种方法,使用户只能使用 edittext 输入 1-9 之间的数字。不应显示异常。输入的数字不应超过一位。

【问题讨论】:

  • 你试过什么?您遇到了哪些具体问题?
  • android:digits="123456789" android:inputType="number"
  • 您是否尝试过任何其他答案来搜索?它已经有了答案。请注意支持社区的重复问题。那可以帮助您。 stackoverflow.com/questions/20248674/…
  • 这能回答你的问题吗? EditText view with keyboard number only
  • 我尝试了所有其他解决方案并最终实现了它。看我的回答here

标签: java android android-edittext


【解决方案1】:

您的问题有两种方法 1) 在你的 XML 文件中

<EditText
  android:id="@+id/edittext"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:digits="123456789"
  android:inputType="number"
  android:maxLength="1"/>

2) 在你的 Activity 类中

    mEdit.setInputType(InputType.TYPE_CLASS_NUMBER );
    mEdit.setKeyListener(DigitsKeyListener.getInstance("0123456789"));
    mEdit.setSingleLine(true);

【讨论】:

  • mEdit.setSingleLine(true) 无法将限制设置为一位数,因此您必须使用过滤器才能实现此目的。
  • @JoseRicardoCiterioAlcala 我同意,我尝试了所有其他解决方案并最终实现了它。看我的回答here
【解决方案2】:

1.使用属性android:inputType="number"input只取数字0-9

2.使用属性android:digits="123456789"只取1-9

3. 使用属性android:maxLength="1" 允许用户只输入一个digit

试试这个:

<EditText
    android:id="@+id/edittext"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="number"
    android:digits="123456789"
    android:maxLength="1"/>

【讨论】:

    【解决方案3】:

    您可以像这样以编程方式设置输入类型:-

     
    myEditText.setInputType(InputType.TYPE_CLASS_NUMBER | 
    InputType.TYPE_NUMBER_VARIATION_PASSWORD);
    myEditText.setKeyListener(DigitsKeyListener.getInstance("123456789"));
    InputFilter[] inputArray = new InputFilter[1];
    inputArray[0] = new InputFilter.LengthFilter(1);
    myEditText.setFilters(inputArray);
      

    或者您可以像这样设置 XML 属性:-

     android:inputType="number"
     android:digits="123456789"
     android:maxLength="1"

    【讨论】:

      【解决方案4】:

      试试这个方法

      <EditText
              android:id="@+id/editText"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:digits="123456789"
              android:maxLength="1"
              android:inputType="number" />
      

      【讨论】:

        猜你喜欢
        • 2013-12-30
        • 1970-01-01
        • 2012-02-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-29
        • 2015-09-03
        相关资源
        最近更新 更多