AndroidのSharedPreferencesにオブジェクトを保存/保管するにはどうすればよいですか? 質問する

AndroidのSharedPreferencesにオブジェクトを保存/保管するにはどうすればよいですか? 質問する

多くのフィールドを含むユーザー オブジェクトを多くの場所で取得する必要があります。ログイン後、これらのユーザー オブジェクトを保存/保管したいと思います。このようなシナリオをどのように実装できますか?

次のように保存することはできません:

SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putString("BusinessUnit", strBusinessUnit);

ベストアンサー1

gson.jarを使用してクラスオブジェクトをSharedPreferencesに保存できます。このjarは以下からダウンロードできます。グーグル-gson

または、Gradle ファイルに GSON 依存関係を追加します。

implementation 'com.google.code.gson:gson:2.8.8'

最新バージョンが見つかりますここ

共有設定の作成:

SharedPreferences  mPrefs = getPreferences(MODE_PRIVATE);

保存する:

MyObject myObject = new MyObject;
//set variables of 'myObject', etc.

Editor prefsEditor = mPrefs.edit();
Gson gson = new Gson();
String json = gson.toJson(myObject);
prefsEditor.putString("MyObject", json);
prefsEditor.commit();

取得するには:

Gson gson = new Gson();
String json = mPrefs.getString("MyObject", "");
MyObject obj = gson.fromJson(json, MyObject.class);

おすすめ記事