[問題] SharedPreference putStringSet怪問題?

看板AndroidDev作者 (henry)時間12年前 (2014/01/28 11:44), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
我想在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

02/01 01:11, , 1F
在edit.putStringSet()前加上edit.clear()就正常了
02/01 01:11, 1F
文章代碼(AID): #1IvoUiWR (AndroidDev)