Я использую SharedPreferences
, чтобы сохранить ArrayList
моих Plant
объектов в памяти, но когда я вызываю
public static void savePlants(){
String json = gson.toJson(myPlantList);
edit.putString("plants", json);
edit.apply();
}
Я получаю эту ошибку java.lang.IllegalArgumentException: class android.content.res.ColorStateList declares multiple JSON fields named mChangingConfigurations
в этой строке
String json = gson.toJson(myPlantList);
Вот соответствующий код из моего Plant
Класса
public class Plant {
private String name;
private String date;
private Drawable image;
private String waterFrequency;
private Gson gson;
public Plant(String n, Drawable i, String wF){
this.name = n;
gson = new Gson();
Date time = Calendar.getInstance().getTime();
this.date = gson.toJson(time);
this.image = i;
this.waterFrequency = wF;
}
}
наконец, вот код, который обрабатывает нажатие button
и добавление растения к ArrayList<Plant>
public void onClick(View v){
switch(v.getId()){
case R.id.savePlant:{
Log.d("SavePlant", "clicked");
MyApplication.myPlantList.add(new Plant(newPlantName.getText().toString(), plantCam.getDrawable(), newPlantWF.getText().toString()));
MyApplication.savePlants();
finish();
Log.d("SavePlant", "finished saving plant" + MyApplication.myPlantList.toString());
break;
}
}
}