1. 程式人生 > >共享一個SharedPreferences儲存工具類

共享一個SharedPreferences儲存工具類

package ***.utils;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * date : 2017/8/7
 * author : bianyaoyao
 * Description :SharedPreferences儲存工具類
 */

public class PrefUtils {
    private  static  String name = "Config";
    public static void putBoolean(Context ctx, String key, boolean value) {
        SharedPreferences sp = ctx.getSharedPreferences(name, Context.MODE_PRIVATE);
        sp.edit().putBoolean(key, value).commit();
    }

    public static boolean getBoolean(Context ctx, String key, boolean defValue) {
        SharedPreferences sp = ctx.getSharedPreferences(name, Context.MODE_PRIVATE);
        return sp.getBoolean(key, defValue);
    }

    public static void putString(Context ctx, String key, String value) {
        SharedPreferences sp = ctx.getSharedPreferences(name, Context.MODE_PRIVATE);
        sp.edit().putString(key, value).commit();
    }

    public static String getString(Context ctx, String key, String defValue) {
        SharedPreferences sp = ctx.getSharedPreferences(name, Context.MODE_PRIVATE);
        return sp.getString(key, defValue);
    }

    public static void putInt(Context ctx, String key, int value) {
        SharedPreferences sp = ctx.getSharedPreferences(name, Context.MODE_PRIVATE);
        sp.edit().putInt(key, value).commit();
    }

    public static int getInt(Context ctx, String key, int defValue) {
        SharedPreferences sp = ctx.getSharedPreferences(name, Context.MODE_PRIVATE);
        return sp.getInt(key, defValue);
    }

    //刪除某個鍵值對
    public static void remove(Context ctx, String key) {
        SharedPreferences sp = ctx.getSharedPreferences(name, Context.MODE_PRIVATE);
        sp.edit().remove(key).commit();
    }
}

關於mode引數   一般都取MODE_PRIVATE,這裡的MODE_PRIVATE 和openFileOutput方法裡的MODE_PRIVATE 是一個意思。官方已經廢除了MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE  這兩個引數意思分別是允許其他應用讀取和寫入我們的sharedPreferences,官方也是為使用者的安全著想

使用:

PrefUtils.putString(LoginActivity.this, "id", "21u34445555"); 
PrefUtils.getString(LoginActivity.this, "id", "");

當然,上面的String 型別的id 欄位可以新建一個檔案 ,避免字串過長拼寫錯誤引起的尷尬問題

public interface GlobalConstants {
    String PREF_ID                    = "id";
}
PrefUtils.getString(LoginActivity.this, GlobalConstants.PREF_ID, "");