ЦЕЛЬ: Используйте EditTextPreference
, чтобы получить число, введенное пользователем.
ПРОБЛЕМА: Я использую support.v7.preference
и, из чего яМы поняли, что эта библиотека создает проблемы при создании пользовательского DialogPreference
( Как использовать support.v7.preference с AppCompat и потенциальные недостатки ).В любом случае я пытался создать 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
вводить только цифры?