Спасибо за пост, он мне очень помог. Я внес некоторые изменения в класс, чтобы пользователи могли обновлять сводку, отображаемую в настройках, с выбранными значениями.
Таким образом, пользователь может видеть свой выбор, не открывая Spinner.
Вот добавленные методы:
// Fills the Entry Values List
@Override
public void setEntryValues(CharSequence[] entryValues) {
super.setEntryValues(entryValues);
restoreCheckedEntries();
}
// Updates the Summary
@Override
public void setSummary(CharSequence entries) {
String s = "";
for (int x = 0; x < getEntryValues().length; x++)
if (mClickedDialogEntryIndices[x])
s += (s.equals("") ? "" : ", ") + getEntries()[x];
super.setSummary(s);
}
Метод setSummary должен вызываться в файле SettingsActivity.java здесь:
private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener
= new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object value) {
String stringValue = value.toString();
if (preference instanceof ListPreferenceMultiSelect) {
ListPreferenceMultiSelect listPreference =
(ListPreferenceMultiSelect) preference;
listPreference.setSummary("");
}
return true;
}
};
Метод setEntryValues может вызываться вместе с setEntries.
Это сработало для меня! Совместимо с Android 2.2 или новее.