環境設定で同じ値を2回使用してリストを作成しようとしていますが、読み返してみると1つの結果しか得られません。 はここに私のSharedPreferencesコードです:私はそれはのように2つの連続した行のリストに書いていますSharedPreferencesがデータを上書きしないようにする
public void storeDeviceDetails(final ArrayList<String> deviceDetails) {
SharedPreferences.Editor editor = context.getSharedPreferences("devicePrefs",Context.MODE_PRIVATE).edit();
Set<String> set = new LinkedHashSet<>();
set.addAll(deviceDetails);
editor.putStringSet("deviceDetails", set);
editor.apply();
}
public ArrayList<String> retrieveDeviceDetails() {
SharedPreferences prefs = context.getSharedPreferences("devicePrefs", MODE_PRIVATE);
ArrayList<String> details = null;
Set<String> set = prefs.getStringSet("deviceDetails", null);
if (set != null) {
details = new ArrayList<>(set);
}
return details;
}
から[hero2lte, 7.0, hero2ltexx, SM-G935F, samsung]
MyPrefClass.storeDeviceDetails(myList);
MyPrefClass.storeDeviceDetails(myList);
そして、私はMyPrefClass.retrieveDeviceDetails();
を行い、私は唯一のようにそれを得ます
本当に[mcve]を提供します。あなたのコードの一部を置く代わりに。 – GhostCat
リストにセットを渡していて、セットに重複した値が入っていません – giorashc
[重複した値を同じキーで2つ以上格納できますか?androidのSharedPreferences?](http://stackoverflow.com/questions/13623098)/can-i-store-two-or-more-values-with-same-key-using-sharedpreferences-android) –