onPreferenceChange方法中的java奇怪值
我有一个带有偏好屏幕的Android应用程序。该屏幕中唯一的首选项是具有四个选项的MultiSelectListPreference。我试图实现onPreferenceChange
方法,以便在每次选项更改时更新首选项的摘要
为此,我将newValue
对象强制转换为字符串的哈希集,但当我注销哈希集的内容时,它们与用户选择的值不对应
这是我的代码:
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference instanceof MultiSelectListPreference) {
MultiSelectListPreference pref = (MultiSelectListPreference) preference;
HashSet<String> values = (HashSet<String>) newValue;
Log.e("SettingsActivity", values.toString());
}
return true;
}
这是当我选择所有四个选项时打印出来的日志消息:
07-28 13:13:00.896 31196-31196/com.example.安卓.theguardiannews E/SettingsActivity:
[ film , environment, business , environment , politics, business]
编辑:以下是所有可能选项的图像:
# 1 楼答案
因此,您可以尝试在onPreferenceChange()方法中执行此操作:
对于更新sumary,只需添加以下行:
所以代码可能是这样的: