#SharedPreferences 工具类分析

    xiaoxiao2021-12-14  20

    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); } });
    转载请注明原文地址: https://ju.6miu.com/read-968241.html

    最新回复(0)