3

我觉得我一定错过了一些东西,但我只是不明白它是什么......我有PreferenceActivity一堆不同的偏好(有些是列表,有些只是文本字段)并且一切正常,但除非我明确地将每个项目的值写入摘要(这显然不是为此目的)我看不到这些项目如何(或在哪里)显示它们当前设置的内容。当我点击它们时,各种视图会显示正确的设置,但这显然不是本意。

我是否必须创建自己的某种自定义列表项,其中包含一个显示每个元素当前填充值的字段?

4

4 回答 4

2

不幸的是,默认的 PreferencesActivity 不显示这些值:如果您希望一目了然地显示所有首选项,那么您正在做的确实是正确的选择。

于 2011-05-07T15:53:18.903 回答
2

如果您仍想继续编程方向,请查看此线程:如何在 Preference 摘要中显示 Android Preference 的当前值?

那里应有尽有。

于 2011-05-22T13:20:28.117 回答
1

创建另一个首选项字段:摘要。每当更新首选项字段或显示首选项屏幕时更新它。用户将能够“更新”汇总值,但无论何时他/她输入首选项,都会显示正确的值。

于 2011-05-07T15:52:32.433 回答
0

对于ListPreferences,这是内置的,您可以使用

android:summary="Actual value: %s"

对于EditTextPreferences,您可以轻松创建自己的类

package your.package.preference;

import android.content.Context;
import android.util.AttributeSet;

public class EditTextPreference extends android.preference.EditTextPreference{
        public EditTextPreference(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }

        public EditTextPreference(Context context, AttributeSet attrs) {
            super(context, attrs);
        }

        public EditTextPreference(Context context) {
            super(context);
        }

        @Override
        public CharSequence getSummary() {
            String summary = super.getSummary().toString();
            return String.format(summary, getText());
        }
    }

并在您的 xml 中使用它:

<your.package.EditTextPreference
                android:key="pref_alpha"
                android:summary="Actual value: %s"
                android:title="Title"
                android:defaultValue="default"
                />
于 2017-05-23T14:14:47.023 回答