First you need to add GSON dependency (ref)
compile 'com.google.code.gson:gson:2.2.4'
Writing object to shared preference
SharedPreferences sharedPref = getApplicationContext().getSharedPreferences("com.example.myapp.PREFERENCE_FILE_KEY",Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); Gson gson = new Gson(); String jsonMyObject = gson.toJson(myObject); editor.putInt("myObject", jsonMyObject ); editor.commit()
Reading Object from shared preference
SharedPreferences sharedPref = getApplicationContext().getSharedPreferences("com.example.myapp.PREFERENCE_FILE_KEY",Context.MODE_PRIVATE); Gson gson = new Gson(); String jsonMyObject= mSharedPreferences.getString("myObject", ""); myObject = gson.fromJson(jsonMyObject, MyObject.class);
Saving List of objects in to shared preference
ArrayList<userModel> userList= new ArrayList<>(); userList.add(new userModel("Jos", "Kuriya")); userList.add(new userModel("Kiran", "Pnr")); Gson gson = new GsonBuilder().create(); JsonArray userJsonArray = gson.toJsonTree(userList).getAsJsonArray(); //Adding data to shared preference SharedPreferences.Editor editor = mSharedPref.edit(); editor.putString("MyUsers", userJsonArray + ""); editor.commit(); //Retrieving data from shared preference String jsonPreferences = mSharedPref.getString("MyUsers", ""); Type type = new TypeToken<ArrayList<userModel>>() {}.getType(); ArrayList<userModel> dataFromSharedPref = gson.fromJson(jsonPreferences, type);