作者henry4343 (henry)
看板AndroidDev
标题[问题] SharedPreference putStringSet怪问题?
时间Tue Jan 28 11:44:41 2014
我想在SharedPreferences里面放StringSet,以下是我的code,首先在oncreate的时候
先侦测Stringset的数量,然後有一个button,当我点下button的时候,会把Stringset
的size取出来加1,然後add到Stringset以後再存回SharedPreferences。
SharedPreferences s = getSharedPreferences("db", 0);
Log.i("c", "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) {
// TODO Auto-generated method stub
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("c", "2.set = "+sss.getStringSet("set", new HashSet<String>()));
}
});
当我第一次安装程式并且点了4下button,log会显示
1.set = []
2.set = [1]
2.set = [2, 1]
2.set = [3, 2, 1]
2.set = [3, 2, 1, 4]
到这边看起来没有什麽问题,可是当我把程式整个关掉在重新打开的时候,log显示
1.set = [1]
为什麽这边只有存在一笔资料呢,我在存入以後又特别把资料取出来确认,
确定有4笔资料,可是只要我把程式整个关掉在打开,却只取到一笔资料。
有人有遇到相同的问题吗?
感谢...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.11.185.225
1F:→ chris930921:在edit.putStringSet()前加上edit.clear()就正常了 02/01 01:11