在DialogPreference中使用空指针异常实现onSetInitialValue

时间:2019-04-09 16:43:57

标签: android kotlin dialog-preference

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

        )

    }

0 个答案:

没有答案