arraylist 를 json을 이용해 sharedpreference에 넣고 가져 옴
String, Integer, boolean
refer to GXCount.app
void setStringArrayPref(String key, ArrayList<String> values) {
SharedPreferences.Editor editor = sharedPreferences.edit();
JSONArray a = new JSONArray();
for (int i = 0; i < values.size(); i++) {
a.put(values.get(i));
}
if (!values.isEmpty()) {
editor.putString(key, a.toString());
} else {
editor.putString(key, null);
}
editor.apply();
}
ArrayList<String> getStringArrayPref(String key) {
String json = sharedPreferences.getString(key, null);
ArrayList<String> urls = new ArrayList<>();
if (json != null) {
try {
JSONArray a = new JSONArray(json);
for (int i = 0; i < a.length(); i++) {
String url = a.optString(i);
urls.add(url);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
return urls;
}
void setIntegerArrayPref(String key, ArrayList<Integer> values) {
SharedPreferences.Editor editor = sharedPreferences.edit();
JSONArray a = new JSONArray();
for (int i = 0; i < values.size(); i++) {
a.put(values.get(i));
}
if (!values.isEmpty()) {
editor.putString(key, a.toString());
} else {
editor.putString(key, null);
}
editor.apply();
}
ArrayList<Integer> getIntegerArrayPref(String key) {
String json = sharedPreferences.getString(key, null);
ArrayList<Integer> urls = new ArrayList<>();
if (json != null) {
try {
JSONArray a = new JSONArray(json);
for (int i = 0; i < a.length(); i++) {
int url = a.optInt(i);
urls.add(url);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
return urls;
}
void setBooleanArrayPref(String key, ArrayList<Boolean> values) {
SharedPreferences.Editor editor = sharedPreferences.edit();
JSONArray a = new JSONArray();
for (int i = 0; i < values.size(); i++) {
Log.w(key+i,""+values.get(i));
a.put(values.get(i));
}
if (!values.isEmpty()) {
editor.putString(key, a.toString());
} else {
editor.putString(key, null);
}
editor.apply();
}
ArrayList<Boolean> getBooleanArrayPref(String key) {
String json = sharedPreferences.getString(key, null);
ArrayList<Boolean> urls = new ArrayList<>();
if (json != null) {
try {
JSONArray a = new JSONArray(json);
for (int i = 0; i < a.length(); i++) {
boolean url = a.optBoolean(i);
urls.add(url);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
return urls;
}
void setIntArrayPref(String key, ArrayList<Integer> values) {
SharedPreferences.Editor editor = mSettings.edit();
JSONArray a = new JSONArray();
for (int i = 0; i < values.size(); i++) {
a.put(values.get(i));
}
if (!values.isEmpty()) {
editor.putString(key, a.toString());
} else {
editor.putString(key, null);
}
editor.apply();
}
ArrayList<Integer> getIntArrayPref(String key) {
String json = mSettings.getString(key, null);
ArrayList<Integer> urls = new ArrayList<>();
if (json != null) {
try {
JSONArray a = new JSONArray(json);
for (int i = 0; i < a.length(); i++) {
int url = a.optInt(i);
urls.add(url);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
return urls;
}
Class Array 통채 save, read
void saveSharedPrefTables() {
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(mContext);
SharedPreferences.Editor prefsEditor = sharedPreferences.edit();
Gson gson = new Gson();
String json = gson.toJson(metros);
prefsEditor.putString("metroInfo", json);
prefsEditor.apply();
}
ArrayList<Metro> readSharedPrefTables() {
ArrayList<Metro> list;
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(mContext);
Gson gson = new Gson();
String json = sharedPreferences.getString("metroInfo", "");
if (json.isEmpty()) {
list = new ArrayList<>();
} else {
Type type = new TypeToken<List<Metro>>() {
}.getType();
list = gson.fromJson(json, type);
}
return list;
}
'android source ' 카테고리의 다른 글
public directory 가져오기 (0) | 2019.07.23 |
---|---|
webView, file url link (0) | 2019.07.23 |
utils.readlines() (0) | 2019.07.16 |
utils.isHeadPhonePlugged() (0) | 2019.07.16 |
utils. log(), append2file(), write2file() (0) | 2019.07.16 |