【发布时间】:2018-10-10 13:09:34
【问题描述】:
目标:使用EditTextPreference 获取用户输入的数字。
问题:我正在使用support.v7.preference,据我了解,这个库给创建自定义DialogPreference (HowTo use support.v7.preference with AppCompat and potential drawbacks) 带来了问题。无论如何,我尝试创建一个 NumberPickerPreference 扩展 DialogPreference 但我得到了 ClassCastException。
我还找到了另一种方法:以编程方式设置EditTextPreference 对象的输入类型,如下所示:
EditTextPreference pref = (EditTextPreference) findPreference("pref_edit_text");
if (pref != null) {
pref.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER);
}
没办法,我总是得到ClassCastException。
我尝试的最后一种方法:修改 xml
android:inputType="numberDecimal"
android:digits="0123456789"
或android:numeric="integer"
没办法,在Dialog我得到全键盘,所以用户可以写任何东西。
有没有办法正确强制EditTextReference 只接受数字输入?
【问题讨论】:
-
据报道这是一个问题,也许这有帮助:github.com/Gericop/Android-Support-Preference-V7-Fix
标签: java android android-support-library edittextpreference