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