【发布时间】:2014-02-19 04:57:14
【问题描述】:
我需要将 Set 放入 SharedPreference,但我有问题。
当我点击按钮时,我会从 SharedPreference 中获取 Set 并将数据添加到 Set 然后放回 SharedPreference,但是当我销毁项目并再次打开它时,sharedPreference 只能在 Set 中获取一个字符串
SharedPreferences s = getSharedPreferences("db", 0);
Log.i("chauster", "1.set = "+s.getStringSet("set", new HashSet<String>()));
Button btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences ss = getSharedPreferences("db", 0);
Set<String> hs = ss.getStringSet("set", new HashSet<String>());
hs.add(String.valueOf(hs.size()+1));
Editor edit = ss.edit();
edit.putStringSet("set", hs);
edit.commit();
SharedPreferences sss = getSharedPreferences("db", 0);
Log.i("chauster", "2.set = "+sss.getStringSet("set",
new HashSet<String>()));
}
});
当我首先安装项目时,我点击按钮 4 次,logcat 打印它
1.set = []
2.set = [1]
2.set = [2, 1]
2.set = [3, 2, 1]
2.set = [3, 2, 1, 4]
将字符串放入sharedPreference Set看起来很成功,但是当我销毁应用程序并再次打开它时,logcat会打印它
1.set = [1]
表示sharedPreference的Set中只有一个字符串,不知道怎么回事? 请帮我。谢谢~
【问题讨论】:
-
也许你应该接受我的回答,因为接受的是错误的