我想使用DialogPreference实现TimePreference,我找到了一个很好的教程来here 在实现TimePreference之后,我注意到不建议使用onSetInitialValue(bool,Object),而是改为实现了onSetInitialValue(Object)
当我尝试实现onSetInitialValue(object)时,由于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
)
}