1.对象的保存、获取、调用
//保存
public static void putObject(Context context, Object object) {
String key = getKey(object.getClass());
Gson gson = new Gson();
String json = gson.toJson(object);
putString(context, key, json);
}
//调用,保存loginResponse类
SharePreferenceUtils.putObject(context, loginResponse);
//获取
public static <T> T getObject(Context context, Class<T> clazz) {
String key = getKey(clazz);
String json = getString(context, key, null);
if (TextUtils.isEmpty(json)) {
return null;
}
try {
Gson gson = new Gson();
return gson.fromJson(json, clazz);
} catch (Exception e) {
return null;
}
}
//调用,通过类去调用
SharePreferenceUtils.getObject(context,LoginResponse.class);
2.List的保存、获取、调用
//保存
public static void putObject(Context context, Object object, Type type) {
String key = getKey(type);
Gson gson = new Gson();
String json = gson.toJson(object);
putString(context, key, json);
}
//调用保存方法
SharePreferenceUtils.getObject(context, new TypeToken<List<LoginResponse>>() {}.getType());
//获取
public static <T> T getObject(Context context, Type type) {
String key = getKey(type);
String json = getString(context, key, null);
if (TextUtils.isEmpty(json)) {
return null;
}
try {
Gson gson = new Gson();
return gson.fromJson(json, type);
} catch (Exception e) {
return null;
}
}
//调用获取方法
SharePreferenceUtils.putObject(context, loginResponseList, new TypeToken<List<LoginResponse>>() {}.getType());
3.putString、getString方法
/**
* 保存在手机里面的文件名
*/
public static String FILE_NAME = "share_data";
public static void putString(Context context, String key, String value) {
SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
SharedPreferences.Editor edit = sp.edit();
edit.putString(key, value);
edit.commit();
}
public static String getString(Context context, String key, String defValue) {
SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
return sp.getString(key, defValue);
}