Android SharedPreferences 简单封装

来源:互联网 发布:佛教通史知无涯 编辑:程序博客网 时间:2024/04/30 08:40

转载请标明出处: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中。





2 0
原创粉丝点击