问题描述
我的应用程序设置中有一个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=numberDecimal
到EditTextPreference