2

我想使用 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

        )

    }
4

0 回答 0