1. ホーム
  2. android

[解決済み] AndroidでSharedPreferencesに配列やオブジェクトを追加することは可能ですか?

2023-05-04 15:17:34

質問

私は ArrayList に保存したいと思います。 SharedPreferences . どのように私は行うことができますか?

注意:私はデータベース

どのように解決するのですか?

アンドロイドの開発者向けサイトから データストレージ :

<ブロッククオート

ユーザー設定

共有のプリファレンス は厳密にはユーザープリファレンスを保存するためのものではありません。 のような、ユーザーが選んだ着信音を保存するためのものではありません。PreferenceActivityは、ユーザー設定を作成するためのActivityフレームワークを提供し、(共有設定を使用して)自動的に永続化されるようになっています。

ということで、単純にキーと値のペアが永続化されるだけなので、大丈夫だと思います。

元の投稿者にとっては、これはそれほど難しいことではありません。単に配列リストを反復して、項目を追加するだけです。この例では、簡単のためにマップを使用していますが、配列リストを使用して適切に変更することができます。

// my list of names, icon locations
Map<String, String> nameIcons = new HashMap<String, String>();
nameIcons.put("Noel", "/location/to/noel/icon.png");
nameIcons.put("Bob", "another/location/to/bob/icon.png");
nameIcons.put("another name", "last/location/icon.png");

SharedPreferences keyValues = getContext().getSharedPreferences("name_icons_list", Context.MODE_PRIVATE);
SharedPreferences.Editor keyValuesEditor = keyValues.edit();

for (String s : nameIcons.keySet()) {
    // use the name as the key, and the icon as the value
    keyValuesEditor.putString(s, nameIcons.get(s));
}
keyValuesEditor.commit()

同じようなことをして、再びキーと値のペアを読み込むことになります。これがうまくいくかどうか教えてください。

更新しました。 API レベル 11 以降を使用している場合は、API レベル 11 以降に対応した メソッド を使って文字列集合を書き出すことができます。