5
Im を使用して、androidのSharedPreferenceが文字列のセットを保存します。それは私の知識に保存され、精密にretrivedしかし、アプリが再起動されると、いくつかのデータが失われた。文字列は1つずつ追加され、それらを追加する前にセットを取得し、文字列を追加してから再度格納します。設定<String>アプリが再起動された後にSharedPreferencesから復元されたときにデータが失われる
これは私がそれを格納する方法である:
Set<String> emptySet = null;
SharedPreferences prefs = getContext().getSharedPreferences(getContext().getString(R.string.pref_disagree_key), Activity.MODE_PRIVATE);
String newIdAgreed = getItem(position).getId();
if (prefs.contains(getContext().getString(R.string.pref_disagree_key))) {
Set<String> updateSet = prefs.getStringSet(getContext().getString(R.string.pref_disagree_key), emptySet);
updateSet.add(newIdAgreed);
SharedPreferences.Editor editor = prefs.edit();
editor.putStringSet(getContext().getString(R.string.pref_disagree_key), updateSet);
editor.commit();
} else {
Set<String> newSet = new HashSet<String>();
newSet.add(newIdAgreed);
SharedPreferences.Editor editor = prefs.edit();
editor.putStringSet(getContext().getString(R.string.pref_disagree_key), newSet);
editor.commit();
}
そして、これは私がそれを取り戻す方法です:
if (prefsDisagree.contains(getContext().getString(R.string.pref_disagree_key))){
disagree_set = new HashSet<String>(prefsDisagree.getStringSet(getContext().getString(R.string.pref_disagree_key), emptySet));
for (String item: disagree_set){
//stuff done here
}
}
私はこのトピックに関するいくつかの同様の質問を見ましたが、答えのどれも私の問題を解決しません。何か案は?