zoukankan      html  css  js  c++  java
  • PreferenceGroup的summary没有自动更新的问题

    写了一个PreferenceActivity,层次是这样的:

    PreferenceScreen(BEGIN-END)

    --EditTextPreference(BEGIN)

    --EditTextPreference(END )

    EditTextPreference

    在BEGIN的值改变后,在它的OnPreferenceChangeListener里更改BEGIN的summary和B-E的summary(注意到,在更改BEGIN的时候B-E是不可见的,需要按下返回键回到B-E这个层次的界面),但是只有BEGIN的summary更新了。

    查了资料,在下面的链接里找到了相应的讨论:

    http://code.google.com/p/android/issues/detail?id=931

    调用PreferenceActivity的onContentChanged就可以更新B-E的summary。

    另外,要实现更新Preference,比较推荐的做法不是使用某一个Preference的OnPreferenceChangeListener,而是在PreferenceActivity实现OnSharedPreferenceChangeListener集中处理。

        @Override
        protected void onResume() {
            super.onResume();
            getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
        }
       
        @Override
        protected void onPause() {
            super.onPause();
            getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);   
        }

        @Override
        public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
                String key) {
            if(0 == key.compareTo(sleepBeginKey) || 0 == key.compareTo(sleepEndKey)) {
                playTime.setSummary(sleepBegin + "-" + sleepEnd);
                onContentChanged();
            }
        }

  • 相关阅读:
    8月24 杂七杂八
    胡思乱想
    前端思考题
    前端经典面试题
    一些被废弃的东西
    关于设置img图片大小优先级的问题
    关于 removeChild()删除节点
    关于前端基本要求及一些题
    关于 Oracle 11g 先决条件检查失败的解决办法
    《现代前端技术解析》第一章读书笔记(未完成)
  • 原文地址:https://www.cnblogs.com/zhengwenwei/p/2027633.html
Copyright © 2011-2022 走看看