【问题标题】:Android: Limiting EditText to numbersAndroid:将 EditText 限制为数字
【发布时间】:2011-07-09 05:05:22
【问题描述】:

在应用程序的 java 部分中创建 EditText 时,如何像在 xml 中那样将其限制为数字?例如:

new EditText(this);

设置喜欢

<EditText
    android:id="@+id/h1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="numberDecimal"/>

【问题讨论】:

    标签: java android android-edittext


    【解决方案1】:

    转到docs 并查看带有 XML 属性的表。它向您显示每个项目的等效代码。

    在这种情况下,它是setRawInputType

    【讨论】:

    • setInputType 在这种情况下可能是更好的选择,因为它会更新 KeyListener
    【解决方案2】:

    可能是这样的?

    EditText text = new EditText(this);
    text.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
    

    【讨论】:

    • 你也可以EditText et = View.inflate(this, R.layout.et_input_number, null);
    【解决方案3】:

    通常会这样做:

    android:numeric="integer"

    【讨论】:

      【解决方案4】:

      不推荐使用android:numeric,请使用android:inputType="number"

      【讨论】:

        【解决方案5】:

        只需在 xml 文件中使用以下几行

        只接受放置的数字:

         android:inputType="number"
        

        限制输入数字的长度:

        android:maxLength="10"
        

        只接受特定的数字:

        EX:1 下面的行只接受 1 或 0。

        android:digits="10"
        

        EX:2 下面的行只接受 2 或 3。

        android:digits="23"
        

        【讨论】:

          最近更新 更多