Я хочу реализовать TimePreference с помощью DialogPreference, я нашел хороший учебник для этого здесь
после реализации TimePreference я заметил, что onSetInitialValue (bool, Object) устарел, и вместо этого я реализовал onSetInitialValue (Object)
Когда я пытаюсь реализовать onSetInitialValue (объект), я получаю исключение нулевого указателя, потому что defaultValue равно null,
Хотя все работает должным образом с устаревшей функцией
fun setTime(time: Int) {
mTime = time
// Save to SharedPreference
persistInt(time)
}
//old version - works
override fun onSetInitialValue(restorePersistedValue: Boolean, defaultValue: Any?) {
setTime(
if (restorePersistedValue)
getPersistedInt(mTime)
else
defaultValue as Int
)
}
//New function doesn't work
override fun onSetInitialValue(defaultValue: Any?) {
setTime(
if (mTime!=0)
getPersistedInt(mTime)
else
defaultValue as Int
)
}