是否可以将EditTextPreference限制为数字?

问题描述

我的应用程序设置中有一个EditTextPreference,我只想接受正十进制数字:

<EditTextPreference
    android:key="annual_vacation_setting"
    android:title="@string/enter_annual_vacation"
    android:defaultValue="@string/default_annual_vacation"
    android:inputType="numberDecimal"
    android:selectAllOnFocus="true" />

不幸的是,inputType属性似乎没有任何作用。用户可以输入任意字符串。

解决方法

解决方案1 ​​

您需要在inputType之后将EditText设置为其onBinding

editTextPrefView.setOnBindEditTextListener { editText ->
    editText.inputType = InputType.TYPE_CLASS_NUMBER
}

解决方案2

使用此FIX library。它会让你直接设置 在 XML

中从android:inputType=numberDecimalEditTextPreference

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...