我想使用 DialogPreference 实现 TimePreference,在实现 TimePreference 之后,我发现了一个很好的教程,我 注意到 onSetInitialValue(bool,Object) 已被弃用,我实现了 onSetInitialValue(Object)
当我尝试实现 onSetInitialValue(object) 时,我得到了一个空指针异常,因为 defaultValue 为空,尽管一切都与弃用的函数一起正常工作
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
)
}