看板 AndroidDev 關於我們 聯絡資訊
我想在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
chris930921:在edit.putStringSet()前加上edit.clear()就正常了 02/01 01:11