android - 更改首选项摘要

标签 android preferences preferenceactivity summary

我仍在寻找一种方法来根据其当前值更改 ListPreference 的摘要。经过一些研究,我设法让它(部分)工作:

 ListPreference pref = (ListPreference) findPreference("Repeat_PREFS");

    pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        public boolean onPreferenceChange(Preference preference, Object val) {

            ListPreference pref = (ListPreference) findPreference("Repeat_PREFS");

            pref.setSummary(pref.getEntry());
            return true;
        }

    });

问题是,当我第一次选择一个值时,摘要会更改为其他值或根本没有更改。当我第二次选择相同的值时,摘要设置正确。我究竟做错了什么?

最佳答案

没有方法可以激活偏好的行为。您需要使用要设置为摘要的值调用 setSummary(),例如使用偏好监听器。

编辑(在更改问题之后......): 不要使用 Preference.OnPreferenceChangeListener,因为它是在新值被持久化之前调用的(参见 http://developer.android.com/reference/android/preference/Preference.OnPreferenceChangeListener.html )因此您第一次更改偏好值时的行为。

我建议在您的PreferenceFragmentPreferenceActivity 中实现OnSharedPreferenceChangeListener。 (不要忘记注册和注销监听器。)此监听器在首选项更改完成后调用。您还应该在 XML 中为首选项设置一个默认值。

关于android - 更改首选项摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12386408/

相关文章:

android - 实现计步器 : How to find a local peak?

java - 如何在 Android 中设置默认布局

android - 运行 5 分钟后,我的 libgdx 游戏崩溃并变成红色

java - 在Android应用程序中存储用户设置的最合适方法是什么

Android SeekBarPreference 自定义 View

java - 无法获取 SharedPreferences

android - 从首选项标题开始 Activity

android - 我的广播接收器类没有响应音量按钮按下?

java - 如何处理 Android 键盘 (IME) 中的配置更改?

android - 在 PreferenceActivity 和嵌套首选项上设置 HomeButtonEnabled