Есть ли способ отобразить текущую настройку PreferenceActivity? - PullRequest
3 голосов
/ 07 мая 2011

Мне кажется, что я что-то упускаю, но я просто не вижу, что это ... У меня есть PreferenceActivity с кучей различных предпочтений (некоторые из них списки, некоторые просто текстовые поля) и этовсе работает нормально, но если я явно не записываю значение каждого элемента в сводку (которая, очевидно, не предназначена для этой цели), я не вижу, как (или где) элементы отображают то, на что они в настоящее время установлены.Когда я нажимаю на них, различные представления отображаются с правильными настройками, но это явно не намерение.

Нужно ли создавать собственный элемент списка какого-либо вида, в котором есть поле, отображающее текущее заполненное значение каждого элемента?

Ответы [ 4 ]

2 голосов
/ 07 мая 2011

К сожалению, PreferencesActivity по умолчанию не отображает значения: то, что вы делаете, - это действительно путь, если вы хотите, чтобы все настройки отображались с первого взгляда .

2 голосов
/ 22 мая 2011

Если вы все еще хотите пойти в направлении программирования, посмотрите на эту ветку: Как отобразить текущее значение предпочтения Android в сводке настроек?

Есть все там.

1 голос
/ 07 мая 2011

Создайте другое поле предпочтения: сводка.Обновляйте его всякий раз, когда обновляется поле настроек или когда отображается экран настроек.Пользователь сможет «обновить» итоговое значение, но всякий раз, когда он / она вводит настройки, будет отображаться правильное значение.

0 голосов
/ 23 мая 2017

Для 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"
                />
...