1

我创建了一个 android 首选项页面,并希望显示在摘要中选择的当前选项。

所以我实现了 onSharedPreferenceChanged 监听器,它也被正确调用。但是,没有屏幕更改,并且显示旧选项。

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    // just update all
    ListPreference lp = (ListPreference) findPreference(PREF_DOWNLOAD_WEB);
    lp.setSummary(getString(R.string.pref_listDownloadWebSummary)  + ": %s");
}

这是一个已知的错误?

4

1 回答 1

2

我注意到当我设置另一个首选项摘要时会显示更新的摘要。所以我首先将摘要设置为“虚拟”,然后才是真正的字符串。它也有效。

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    // just update all
    ListPreference lp = (ListPreference) findPreference(PREF_DOWNLOAD_WEB);
    lp.setSummary("dummy"); // required or will not update
    lp.setSummary(getString(R.string.pref_listDownloadWebSummary)  + ": %s");

}
于 2013-05-06T11:13:03.913 回答