Android之SharedPreferences的高级使用

2022-06-10 10:31:46 浏览数 (1)

SharedPreferences作为Android中的轻量级存储,读写操作都非常简单,使用的也非常广泛。

一般存储一些用户的不重要的信息和一些参数等。以键值对的方式存储。存放于/data/data/包名/shared_prefs目录下

1.一般使用

代码语言:javascript复制
SharedPreferences sp = getSharedPreferences("config", Context.MODE_PRIVATE);//文件名,权限

Editor editor = sp.edit();//编辑器

editor.putString("name", "小明");

editor.putInt("age", 18);

editor.commit();//提交

2.高级使用

a.简单封装

代码语言:javascript复制
public class SpUtil {
    public static final String FILE_NAME = "config";
    private static Activity activity;
    public static SharedPreferences sp;

    public static void setActivity(Activity act) {
        activity = act;
        sp = activity.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
    }

    public static Activity getActivity() {
        return activity;
    }

    public static void setString(String key, String value) {
        sp.edit().putString(key, value).commit();
    }

    public static void removeString(String key) {
        sp.edit().remove(key).commit();
    }

    public static String getString(String key) {
        return sp.getString(key, "");
    }

    public static void setBoolean(String key, boolean value) {
        sp.edit().putBoolean(key, value).commit();
    }

    public static boolean getBoolean(String key) {
        return sp.getBoolean(key, false);
    }
}

b.使用

在Activity中或者BaseActivity的onCreate中加上

代码语言:javascript复制
SpUtil.setActivity(this);

然后就可以极简便的使用了,根据对应的key获取对应的value

写:

代码语言:javascript复制
SpUtil.setString("testKey", "testValue");

读:

代码语言:javascript复制
String testData = SpUtil.getString("testKey");

最后加上读写权限。

0 人点赞