我創建了一個簡單的遊戲。最後,用戶的名字和分數應該進入高分榜。爲此,我想將這些數據存儲在sharedpreferences中。我看到一篇文章,我正試圖將其應用到我的應用程序,但它強制關閉。我甚至不知道這是否正確。所以我把這些關鍵字(球員,比分)放入一個數組列表中。從那裏我可以得到列表視圖的值。 這只是一個例子。Android sharedpreferences into arraylist
SharedPreferences.Editor scoreEditor = myScores.edit();
scoreEditor.putString("PLAYER", "Thomas");
scoreEditor.putString("SCORE", "5");
scoreEditor.commit();
final ArrayList<HashMap<String,String>> LIST = new ArrayList<HashMap<String,String>>();
Map<String, ?> items = myScores.getAll();
for(String s : items.keySet()){
HashMap<String,String> hmap = new HashMap<String,String>();
hmap.put("PLAYER", s);
hmap.put("SCORE", items.get(s).toString());
LIST.add(hmap);
}
Toast.makeText(Start.this, "LIST size: "+LIST.size(), Toast.LENGTH_LONG).show();
對於我來說,也將是好的,如果我存儲這些數據是這樣的:
scoreEditor.putString("DATA", "Thomas" + "-" + "5");
並將它放入ArrayList<String> LIST = new ArrayList<String>();
,但我不知道該怎麼做。
你們能幫我解決嗎?
編輯:所以我可以去Haphazard建議的另一種方式。我把這些代碼放在一起,但我不知道這是否是這樣做的。我還沒有測試過它,因爲sg與sharedpreferences存在錯誤,我仍然試圖弄清楚。
SharedPreferences.Editor scoreEditor = myScores.edit();
scoreEditor.putString("DATA", "Thomas" + "-" + "5");
scoreEditor.commit();
HashSet<String> hset=new HashSet<String>();
hset.addAll((Collection<? extends String>) myScores.getAll());
ArrayList<String> LIST = new ArrayList<String>(hset);
當你有力量關閉時,你應該先看看logcat,看看問題出在哪裏以及強制關閉的異常的性質。 – Snicolas 2011-06-02 18:25:32