#SharedPreferences 工具类分析

来源:互联网 发布:塔吊基础验算软件 编辑:程序博客网 时间:2024/05/24 03:06

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);        }    });
0 0
原创粉丝点击