Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@JoachimR
Created November 24, 2015 09:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JoachimR/c60aae1bb4b7076332b2 to your computer and use it in GitHub Desktop.
Save JoachimR/c60aae1bb4b7076332b2 to your computer and use it in GitHub Desktop.
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import org.json.JSONArray;
import org.json.JSONException;
import java.util.ArrayList;
import java.util.List;
public class ListToSharedPreferences extends AppCompatActivity {
private SharedPreferences prefs;
private List<Integer> selectedIntegers = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
prefs = getSharedPreferences("myprefs", Context.MODE_PRIVATE);
}
@Override
protected void onResume() {
super.onResume();
loadStateFromPrefs();
}
@Override
protected void onPause() {
super.onPause();
storeStateToPrefs();
}
private void loadStateFromPrefs() {
if (prefs == null) {
return;
}
// read in json array from prefs to fill list
selectedIntegers = new ArrayList<>();
String jsonArrayString = prefs.getString("selectedIntegers", "");
if (!TextUtils.isEmpty(jsonArrayString)) {
try {
JSONArray jsonArray = new JSONArray(jsonArrayString);
if (jsonArray.length() > 0) {
for (int i = 0; i < jsonArray.length(); i++) {
Integer integer = jsonArray.getInt(i);
selectedIntegers.add(integer);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
protected void storeStateToPrefs() {
if (prefs == null) {
return;
}
SharedPreferences.Editor editor = prefs.edit();
// store list as jsonarray
JSONArray jsonArray = new JSONArray();
for (Integer z : selectedIntegers) {
jsonArray.put((int) z);
}
editor.putString("selectedIntegers", jsonArray.toString());
editor.commit();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment