有没有办法显示PreferenceActivity的当前设置?

时间:2011-05-07 15:27:17

标签: android preferenceactivity

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

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

4 个答案:

答案 0 :(得分:2)

不幸的是,默认的PreferencesActivity不会显示值:如果你想要显示所有首选项一目了然,那么你正在做的事情就是这样。

答案 1 :(得分:2)

如果您仍想沿着编程方向前进,请查看此主题:How do I display the current value of an Android Preference in the Preference summary?

那里有一切。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

对于list1 = yourListOfElements for elem in list1: try: # Needs try/except otherwise last iteration would throw an indexerror listaAUX = [] # Auxiliar list to check length and join smaller elements. You can probably eliminate this using list slicing listaAUX.append(elem) listaAUX.append(list1[list1.index(elem)+1]) if len(listaAUX[0]) + len(listaAUX[1]) < 30: concatenated = '/'.join(listaAUX) print(concatenated) else: print(elem) except IndexError: print(elem) ,这是内置的,您可以使用

ListPreferences

对于android:summary="Actual value: %s" ,您可以easily create your own class

EditTextPreferences
     

并在xml中使用它:

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