Zar*_*doz 7 android android-preferences sharedpreferences
在androidx.preference.Preference(使用版本1.1.0-beta01),可以设置一个摘要提供商,这是我的内部确实onCreatePreferences的方法PreferenceFragmentCompat。
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
...
val mySummaryProvider = Preference.SummaryProvider<Preference> {
val str = preferenceManager.sharedPreferences.getString(it.key, "")
doSomethingCool(str)
}
findPreference<Preference>("my_pref_id").summaryProvider = mySummarProvider
}
Run Code Online (Sandbox Code Playgroud)
当我现在更新首选项(通过使用首选项编辑器)而片段仍然可见时,如何通知首选项或片段应再次调用摘要提供程序(它不会自动完成)?不幸的是,我没有看到任何方法或方式来做到这一点。
小智 2
SummaryProvider主要用于在更新自身后更新首选项的摘要,例如当ListPreference选择 a 中的选项时,强制更新Preference并因此触发SummaryProvider.
如果您通常要更改首选项下的数据,是否需要此处SummaryProvider?setSummary如果没有,您可以在更改数据时手动调用,因为Preferences当前不观察其支持数据源。如果没有更多示例代码,很难说清楚,但奇怪的是,当用户当前正在查看首选项时,数据可以在没有用户输入的情况下发生更改。