Я создал простую игру. В конце концов, имя пользователя и оценка должны попасть в список рекордов. Для этого я хотел бы сохранить эти данные в sharedpreferences. Я видел сообщение, и я пытаюсь применить его к моему приложению, но он закрывает. Я даже не знаю, правильно ли я это делаю. Поэтому я помещаю эти ключевые слова (игрок, оценка) в arraylist. Оттуда я могу получить значения в списке. Это всего лишь пример.Android sharedpreferences в 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>();
, но я не знаю, как это сделать.
Не могли бы вы, ребята, помочь мне с этим?
Редактировать: Так что я мог пойти другим путем, как предложил Хафазард. Я собрал этот код, но я не знаю, способ ли это сделать. Я еще не тестировал его, так как 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);
Когда у вас есть сила, вы должны сначала взглянуть на логарифм и посмотреть, где проблема, и характер исключения, которое заставляет закрыться. – Snicolas