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

  • 相关阅读:
    IntelliJ idea 2021.3 安装使用及激活
    高项-信息系统基础-UML图
    软考高项(信息系统项目管理师)介绍
    Android Studio中的Gradle面板没有Task任务列表如何找回?
    ubuntu 安装nodejs,npm,
    解决video.js video-player不能自动播放问题
    vuex开启namespaced
    axios提交body raw格式
    vue配置服务代理
    PIDFile没有配置导致将mongodb配置成服务时启动失败
  • 原文地址:https://www.cnblogs.com/zhengwenwei/p/2027633.html
Copyright © 2011-2022 走看看