I am dealing with the same issue. From SDK 18 all thing seems to work fine but in rest, I have same issue like you.
I found a solution that seems to work for me:
MultiSelectListPreference multiSelectListPref = (MultiSelectListPreference) findPreference("pref_name");
if (multiSelectListPref != null) {
multiSelectListPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
MultiSelectListPreference mpreference = (MultiSelectListPreference) preference;
mpreference.setSummary(newValue.toString());
mpreference.setValues((Set<String>) newValue);
return true;
}
});
}
maybe it is useful for your cases too