Android SharedPreferences 簡單封裝

轉載請標明出處: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中。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章