1. ホーム
  2. android

Android カスタムオブジェクトのArrayList - SharedPreferencesに保存 - Serializable?

2023-07-16 17:20:50

質問

あるオブジェクトのArrayListを持っています。オブジェクトは 'Bitmap'と 'String'のタイプを含み、そして両方のためのちょうどゲッターとセッターを含んでいます。まず第一に、Bitmapはシリアライズ可能ですか?

これを SharedPreferences に格納するために、どのようにシリアライズすればよいのでしょうか。多くの人が同じような質問をするのを見ましたが、誰も良い答えを与えていないようです。私は可能であれば、いくつかのコード例を希望します。

bitmapがシリアライズ可能でない場合、このArrayListを格納するためにどのように行けばよいですか?

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

はい、合成オブジェクトを共有環境設定に保存することができます。例えば...

 Student mStudentObject = new Student();
 SharedPreferences appSharedPrefs = PreferenceManager
             .getDefaultSharedPreferences(this.getApplicationContext());
 Editor prefsEditor = appSharedPrefs.edit();
 Gson gson = new Gson();
 String json = gson.toJson(mStudentObject);
 prefsEditor.putString("MyObject", json);
 prefsEditor.commit(); 

...といった具合に、オブジェクトを取り出すことができるようになりました。

 SharedPreferences appSharedPrefs = PreferenceManager
             .getDefaultSharedPreferences(this.getApplicationContext());
 Gson gson = new Gson();
 String json = appSharedPrefs.getString("MyObject", "");
 Student mStudentObject = gson.fromJson(json, Student.class);

より詳しい情報は をクリックしてください。

を戻したい場合は ArrayList を取得したい場合、例えば Student を使うことができます。

Type type = new TypeToken<List<Student>>(){}.getType();
List<Student> students = gson.fromJson(json, type);