如何从子偏好更新首选项摘要

时间:2011-02-08 13:58:51

标签: android summary preference

我无法解决这个问题。我有偏好屏幕,并且有子偏好打开另一个屏幕。在另一个屏幕上,可以使用OnSharedPreferenceChangeListener捕获项目的更改,并在父级首选项屏幕中更改摘要,但当我返回到父级首选项屏幕时,摘要未更改。

同样的问题被问到here,但结论不明确,我无法解决这个问题。对我来说这似乎是一个常见的问题,我想这有很好的解决方案。

任何人都知道解决这个问题的方法吗?

  • 我想保留一件事:sub-preference是标准的,不是自定义的。

2 个答案:

答案 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}}