Я разрабатываю приложение для Android и добавил несколько элементов 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>
Нашел ответ. Просто добавьте 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"
/>