SharedPreferencesUtil.java
4.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
package com.sunvote.xpadapp.utils;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.util.ArrayList;
import java.util.List;
public class SharedPreferencesUtil {
//存储的sharedpreferences文件名
private static final String FILE_NAME = "save_file_name";
/**
* 保存数据到文件
* @param context
* @param key
* @param data
*/
public static void saveData(Context context, String key,Object data){
String type = data.getClass().getSimpleName();
SharedPreferences sharedPreferences = context
.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();
if ("Integer".equals(type)){
editor.putInt(key, (Integer)data);
}else if ("Boolean".equals(type)){
editor.putBoolean(key, (Boolean)data);
}else if ("String".equals(type)){
editor.putString(key, (String)data);
}else if ("Float".equals(type)){
editor.putFloat(key, (Float)data);
}else if ("Long".equals(type)){
editor.putLong(key, (Long)data);
}
editor.commit();
}
/**
* 从文件中读取数据
* @param context
* @param key
* @param defValue
* @return
*/
public static Object getData(Context context, String key, Object defValue){
String type = defValue.getClass().getSimpleName();
SharedPreferences sharedPreferences = context.getSharedPreferences
(FILE_NAME, Context.MODE_PRIVATE);
//defValue为为默认值,如果当前获取不到数据就返回它
if ("Integer".equals(type)){
return sharedPreferences.getInt(key, (Integer)defValue);
}else if ("Boolean".equals(type)){
return sharedPreferences.getBoolean(key, (Boolean)defValue);
}else if ("String".equals(type)){
return sharedPreferences.getString(key, (String)defValue);
}else if ("Float".equals(type)){
return sharedPreferences.getFloat(key, (Float)defValue);
}else if ("Long".equals(type)){
return sharedPreferences.getLong(key, (Long)defValue);
}
return null;
}
/**
* 保存List
* @param tag
* @param datalist
*/
public static <T> void setDataList(Context context, String tag, List<T> datalist) {
if (null == datalist || datalist.size() <= 0)
return;
SharedPreferences sharedPreferences = context
.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();
Gson gson = new Gson();
//转换成json数据,再保存
String strJson = gson.toJson(datalist);
editor.putString(tag, strJson);
editor.commit();
}
public static void setArrayString(Context context,String tag, String[] values) {
String regularEx = "~";
String str = "";
SharedPreferences preferences = context.getSharedPreferences
(FILE_NAME, Context.MODE_PRIVATE);
if (values != null && values.length > 0) {
for (String value : values) {
str += value;
str += regularEx;
}
Editor et = preferences.edit();
et.putString(tag, str);
et.commit();
}
}
/**
* 获取List
* @param tag
* @return
*/
public static <T> List<T> getDataList(Context context,String tag) {
List<T> datalist=new ArrayList<T>();
SharedPreferences preferences = context.getSharedPreferences
(FILE_NAME, Context.MODE_PRIVATE);
String strJson = preferences.getString(tag, null);
if (null == strJson) {
return datalist;
}
Gson gson = new Gson();
datalist = gson.fromJson(strJson, new TypeToken<List<T>>() {
}.getType());
return datalist;
}
public static String[] getArrayString(Context context,String tag) {
String regularEx = "~";
String[] str = null;
SharedPreferences preferences = context.getSharedPreferences
(FILE_NAME, Context.MODE_PRIVATE);
String values;
values = preferences.getString(tag, null);
if(values!=null){
str = values.split(regularEx);
}
return str;
}
}