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