#SharedPreferences 工具类分析

SharedPreferences 工具类分析

public class SpUtils {
private static SharedPreferences sp;//定义一个静态的成员变量
/**
* 写入一个boolean类型的变量在sp当中
* @param conext 上下文
* @param key 存储节点的名称
* @param value boolean值
*/
public static void putBoolean(Context conext,String key,boolean value){
if (sp!=null){ //如果sp为空的话那就创建 不为空就直接使用

//这里我分析下下面的方法中的三个参数 第一个参数是存储在SD卡中的文件名称,第二个参数是文件的读取模式 我们设置为私有模式
sp = conext.getSharedPreferences(“config”, Context.MODE_PRIVATE);
}
sp.edit().putBoolean(key, value).apply();
//这一句中推荐大家使用apply();之前的conmit()官方已经不再推荐使用
}
//读sp中的变量值
//下面的两个参数 是key 和vaule 我们的数据在sd中是以xml的形式存在的一个值对应一个value 我们取数据或者是装数据,都是根据键值对来操作的
public static boolean getBoolean(Context context,String key,boolean value){
if (sp==null){
sp = context.getSharedPreferences(“config”,context.MODE_PRIVATE);
}
return sp.getBoolean(key,false);
}
}

代码中的使用方法

下面是以checkbox的点击事件保存案例

   //获取已有的开关状态,用作显示 siv_update是checkbox的name
   // 首先我们要从sd卡中的xml文件中拿到之前的是否点击的变量设置上去
   boolean open_update =  
   SpUtils.getBoolean(this,ConstantValue.OPEN_UPDATE,false);
    siv_update.setCheck(open_update);
    siv_update.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //如果之前是选中的 点击后变成未选中  反之可推理
         boolean check = siv_update.isCheck();//获取之前的选中状态
            //将原有的状态取反
            Toast.makeText(SettingActivity.this,""+!check,Toast.LENGTH_SHORT).show();
            siv_update.setCheck(!check);
            //将取反后后的状态存储到sp中
            SpUtils.putBoolean(getApplicationContext(), ConstantValue.OPEN_UPDATE,!check);
        }
    });
posted @   飞航之梦  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示