Показать текущее значение SeekBarPreference

Я разрабатываю приложение для Android и добавил несколько элементов SeekBarPreference на страницу настроек, чтобы они работали как ползунки. У них разные максимальные значения, и я думаю, проблема в том, что вы не видите, какое значение вы выбрали. Поэтому мне интересно, как лучше всего показать текущее значение SeekBarPreference в действии настроек. Прямо сейчас я думаю, что, возможно, резюме элемента seekBarPreference - лучший способ, но я открыт для других предложений.

Вот как выглядит действие настроек: Показать текущее значение SeekBarPreference

Вот код, который я пробовал до сих пор:

public static class SettingsFragment extends PreferenceFragmentCompat {

    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        setPreferencesFromResource(R.xml.root_preferences, rootKey);

        ((SeekBarPreference) findPreference(R.id.seekRounds)).setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue) {
                final int progress = Integer.valueOf(String.valueOf(newValue));
                preference.setSummary(String.format("Current value: %d", progress));
            }
        });

    }

И в настоящее время я получаю сообщение об ошибке Cannot resolve symbol 'seekRounds'.

Вот мой файл root_preferences.xml:

<androidx.preference.PreferenceScreen xmlns:app = "http://schemas.android.com/apk/res-auto"
    xmlns:android = "http://schemas.android.com/apk/res/android">

    <PreferenceCategory app:title = "@string/main_settings_header">


        <SeekBarPreference
            app:key = "seekRounds"
            android:title = "Number of rounds"
            android:summary = "This is the summary"
            android:max = "2"
            android:progress = "0"
            android:theme = "@style/Base.Widget.AppCompat.SeekBar"
        />


    </PreferenceCategory>
0
0
588
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нашел ответ. Просто добавьте app:showSeekBarValue = "true" к своему SeekBarPreference.

Так:

<SeekBarPreference
            app:key = "seekRounds"
            android:title = "Number of rounds"
            android:summary = "This is the summary"
            android:max = "2"
            app:showSeekBarValue = "true"
            android:progress = "0"
            android:theme = "@style/Base.Widget.AppCompat.SeekBar"
        />

Другие вопросы по теме