0

我无法解决这个问题。我有偏好屏幕,并且有打开另一个屏幕的子偏好。在另一个屏幕上,可以捕捉到项目的变化,OnSharedPreferenceChangeListener并且我在父首选项屏幕中更改了摘要,但是当我返回该父首选项屏幕时,摘要没有更改。

这里问了同样的问题,但结论不清楚,我无法解决这个问题。这对我来说似乎是一个普遍的问题,我想有一个很好的解决方案。

有人知道这个问题的解决方案吗?

  • 我喜欢保留一件事:子偏好是标准的,而不是自定义的。
4

2 回答 2

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();
}
于 2011-09-30T11:42:03.793 回答
0

检查 对我有用的@jmbouffard的答案

于 2013-08-11T13:04:05.757 回答