I am attempting to create a class that will contain methods for saving and loading an ArrayList of objects into SharedPreferences. However, when I attempt to load back data I had previously saved. It is as if it has not saved. I am using Googles Gson Libraries to help.
Instance_Read_Write.java
public class Instance_Read_Write {
public void saveData(Context context, ArrayList<Example> Examples){
SharedPreferences sharedPreferences = context.getSharedPreferences("instanceKey",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
Gson gson = new Gson();
String json = gson.toJson(Examples);
editor.putString("list", json);
editor.apply();
}
public void loadData(Context context, ArrayList<Example> Examples) {
SharedPreferences sharedPreferences = context.getSharedPreferences("instanceKey",Context.MODE_PRIVATE);
Gson gson = new Gson();
String json = sharedPreferences.getString("list", null);
Type type = new TypeToken<ArrayList<Example>>() {}.getType();
Examples = gson.fromJson(json, type);
if (Examples == null) {
Examples = new ArrayList<>();
}
}
}
and this is how I am referencing them.
MainActivity.java
Instance_Read_Write instance_read_write = new Instance_Read_Write();
instance_read_write.loadData(context,Examples);
Examples.add(new Example("test"));
...
...
...
instance_read_write.saveData(context,Examples);
Is there a way to make this work? or perhaps a better way to do this?