Android 如何使用Kotlin在OnPreferenceChangeListener上保存新值?

Android 如何使用Kotlin在OnPreferenceChangeListener上保存新值?,android,kotlin,Android,Kotlin,我知道在OnPreferenceChangeListener上为true之前,没有保存新值 我希望手动保存,我该怎么办?谢谢 fun setPreference(){ val chAutoRestore = preferenceManager.findPreference(getString(R.string.IsAutoRestore)) as CheckBoxPreference chAutoRestore.onPreferenceChangeListen

我知道在
OnPreferenceChangeListener
上为true之前,没有保存新值

我希望手动保存,我该怎么办?谢谢

 fun setPreference(){
        val chAutoRestore = preferenceManager.findPreference(getString(R.string.IsAutoRestore)) as CheckBoxPreference

        chAutoRestore.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { preference, newValue ->
            logError( "Pref " + preference.key + " changed to " + newValue.toString())

            //Save newValue
            startOrStopScheduleRestore(mContext)
            true

        }
    }

它将自动以xml格式存储在共享首选项中:

<EditTextPreference
        android:defaultValue="@string/default_value"
        android:key="YOUR_KEY"
        android:title="@string/title"/>

这个代码对我有用

val notificationPreference: SwitchPreferenceCompat? = findPreference("notifications")
notificationPreference!!.onPreferenceChangeListener =
    Preference.OnPreferenceChangeListener { preference, newValue ->

        // Manually save to Prefs
        Utilities().putPrefBoolean(preference.key, newValue as Boolean)

        // Reflect the newValue to Preference?
        true
    }
val notificationPreference: SwitchPreferenceCompat? = findPreference("notifications")
notificationPreference!!.onPreferenceChangeListener =
    Preference.OnPreferenceChangeListener { preference, newValue ->

        // Manually save to Prefs
        Utilities().putPrefBoolean(preference.key, newValue as Boolean)

        // Reflect the newValue to Preference?
        true
    }