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();
            }
        }

  • 相关阅读:
    vue 回到顶部效果实现
    C# rabbitmq 安装步骤以及使用方法
    ​Everspin MRAM常见问题解答
    带有ECC的异步SRAM存储器适用于各种应用
    ​MCU是控制电子产品的大脑
    全球MCU市场供需失衡情况愈发严重
    如何选择非易失性SRAM
    SRAM VS DRAM
    SoC上的内存
    EEPROM和FLASH在大多数应用场合中无法替代SRAM
  • 原文地址:https://www.cnblogs.com/zhengwenwei/p/2027633.html
Copyright © 2011-2022 走看看