我遇到的问题是PreferenceScreen
的摘要不会立即刷新。
我在另一个CheckBoxPreference
中有一个PreferenceScreen
。我正在跟踪CheckBox
中onSharedPreferenceChanged()
值的更改,并使用setSummary()
更改屏幕摘要。但是当我回到主PreferenceScreen
时,不显示更改的摘要,只显示旧的摘要
我必须再向下滚动直到它显示出来。因此,一旦它退出视野并重新焕然一新。
如何立即刷新?
我的PreferenceActivity的一部分:
public class AppPreferencesActivity extends android.preference.PreferenceActivity {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals("pref1")) {
this.findPreference("screen2").setSummary("mySummary");
}
}
我的偏好文件的一部分:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Category Title">
<PreferenceScreen android:key="screen2"
android:title="Screen Title">
<CheckBoxPreference android:key="pref1"
android:title="Pref Title"
android:defaultValue="true" />
</PreferenceCategory>
</PreferenceScreen>
答案 0 :(得分:0)
将onSharedPreferenceChanged
替换为onPreferenceChange
public class AppPreferencesActivity extends PreferenceActivity implements OnPreferenceChangeListener {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
//Set summary here
}
}
答案 1 :(得分:0)
这对我有用:
BaseAdapter baseAdapter = (BaseAdapter) getPreferenceScreen().getRootAdapter();
baseAdapter.notifyDataSetChanged();