我无法解决这个问题。我有偏好屏幕,并且有子偏好打开另一个屏幕。在另一个屏幕上,可以使用OnSharedPreferenceChangeListener
捕获项目的更改,并在父级首选项屏幕中更改摘要,但当我返回到父级首选项屏幕时,摘要未更改。
同样的问题被问到here,但结论不明确,我无法解决这个问题。对我来说这似乎是一个常见的问题,我想这有很好的解决方案。
任何人都知道解决这个问题的方法吗?
答案 0 :(得分:4)
我通过在首选项中添加OnPreferenceClickListener
来解决这个问题,这会在主屏幕中更改摘要。
OnPreferenceClickListener viewUpdater = new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
updateView();
return false;
}
};
在updateView()方法中,我将摘要设置为新值,然后我使用首选项列表视图的invalidateViews方法触发更新显示的摘要
private void updateView() {
preference.setSummary(newSummary);
getListView().invalidateViews();
}
答案 1 :(得分:0)
检查answer @jmbouffard对我有用的<{3}}