私はシンプルなゲームを作成しました。最後にユーザーの名前とスコアが最高スコアのリストに入るはずです。このため私はsharedpreferencesにこれらのデータを保存したいと思います。私は投稿を見て、私はそれを私のアプリに適用しようとしているが、強制的に閉じる。これが私がしている正しいことなのかどうか分かりません。だから、私はこれらのキーペア(プレーヤー、スコア)をarraylistに入れます。そこから私はリストビューに値を得ることができます。 これは単なる例です。私にとってarraylistにAndroid sharedpreferences
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