Есть способы сделать это более универсальное решение, если оно соответствует вашим потребностям.
Например, если вы хотите, чтобы все настройки списка отображались в виде сводки, это можно сделать для реализации onSharedPreferenceChanged
:
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
Preference pref = findPreference(key);
if (pref instanceof ListPreference) {
ListPreference listPref = (ListPreference) pref;
pref.setSummary(listPref.getEntry());
}
}
Это легко расширяемо для других классов предпочтений.
И, используя функциональные возможности getPreferenceCount
и getPreference
в PreferenceScreen
и PreferenceCategory
, вы можете легко написать универсальную функцию для обхода дерева предпочтений, устанавливая сводку всех предпочтений типов, которые вы хотите, toString
представление