转载请标明出处:http://blog.csdn.net/u010886975/article/details/52538625
1.说明
1.1在Android开发中,经常使用SharedPreferences来存储一些简单的数据。在同一个项目里面,使用的时候总是去获取对象,感觉比较麻烦,自己对它进行一个简单的封装。不过没考虑效率问题。大家有觉得不对的地方,请指教。
2.封装使用
2.1有很多人一般都是直接获取haredPreferences对象进行使用,特别是接触android不久的人,就像下面这样。
储存:
SharedPreferences sharedPreferences = getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();
editor.putString("username", "Tom");
editor.putInt("password", 123456);
editor.commit();
获取:
SharedPreferences sharedPreferences = getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE);
String username = sharedPreferences.getString("username", "");
int password = sharedPreferences.getInt("password", 0);
虽然代码也没有多少,但每次都去这样做,觉得还是很麻烦。
2..2所以就简单封装如下:
储存:
public void putSharedPreference(Context context, String key, Object object) {
SharedPreferences sp = context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
if (object instanceof String) {
editor.putString(key, (String) object);
} else if (object instanceof Integer) {
editor.putInt(key, (Integer) object);
} else if (object instanceof Boolean) {
editor.putBoolean(key, (Boolean) object);
} else if (object instanceof Float) {
editor.putFloat(key, (Float) object);
} else if (object instanceof Long) {
editor.putLong(key, (Long) object);
} else {
editor.putString(key, object.toString());
}
editor.commit();
}
获取:
public Object getSharedPreference(Context context, String key, Object defaultObject) {
SharedPreferences sp = context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE);
if (defaultObject instanceof String) {
return sp.getString(key, (String) defaultObject);
} else if (defaultObject instanceof Integer) {
return sp.getInt(key, (Integer) defaultObject);
} else if (defaultObject instanceof Boolean) {
return sp.getBoolean(key, (Boolean) defaultObject);
} else if (defaultObject instanceof Float) {
return sp.getFloat(key, (Float) defaultObject);
} else if (defaultObject instanceof Long) {
return sp.getLong(key, (Long) defaultObject);
}
return null;
}
3.总结
3.1个人感觉还不错,使用的时候只需要传入上下文,key值,和对应的value就行了。可以将这两个方法放到baseActivity中,或者放在baseFragment中,或者放置于Application中。
转载请注明原文地址: https://ju.6miu.com/read-1125768.html