2-2.Android 存储之 SharedPreferences 编码模板(工具类编码)

一、SharedPreferences

1、基本介绍
  1. SharedPreferences 是 Android 的一个轻量级存储工具,它采用 key - value 的键值对方式进行存储

  2. 它允许保存和读取应用中的基本数据类型,例如,String、int、float、boolean 等

  3. 保存共享参数键值对信息的文件路径为:/data/data/【应用包名】/shared_prefs/【SharedPreferences 文件名】.xml

2、使用步骤
(1)获取 SharedPreferences 实例
  1. 其中,fileName 是为 SharedPreferences 文件指定的名称

  2. mode 是文件的操作模式,通常是 MODE_PRIVATE(私有模式)

SharedPreferences sharedPreferences = context.getSharedPreferences(【fileName】, 【mode】);
(2)写入数据
  1. 使用 SharedPreferences.Editor 来编辑数据,通过 SharedPreferences 实例的 edit 方法获取 Editor 对象

  2. 然后使用 put 相关方法来添加或修改数据,当 key - value 不存在时为添加,当 key - value 存在时为修改

  3. 最后调用 commit 方法来提交更改

SharedPreferences.Editor edit = sharedPreferences.edit();
edit.putString(【key】, 【value】);
edit.commit();
(3)读取数据
  1. 通过 SharedPreferences 实例的 get 相关方法来读取数据

  2. 如果 key 不存在,则返回 defValue 默认值

sharedPreferences.getString(【key】, 【defValue】);

二、SharedPreferences 工具类

1、代码
/**
 * SharedPreferences 工具类
 */
public class MySPTool {

    /**
     * 存 String 类型的数据
     *
     * @param context  上下文对象
     * @param fileName 文件名
     * @param key      键名
     * @param value    键值
     */
    public static void setString(Context context, String fileName, String key, String value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
        SharedPreferences.Editor edit = sharedPreferences.edit();
        edit.putString(key, value);
        edit.commit();
    }

    /**
     * 取 String 类型的数据
     *
     * @param context  上下文对象
     * @param fileName 文件名
     * @param key      键名
     * @return
     */
    public static String getString(Context context, String fileName, String key) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
        return sharedPreferences.getString(key, "");
    }

    // ----------------------------------------------------------------------------------------------------

    /**
     * 存 int 类型的数据
     *
     * @param context  上下文对象
     * @param fileName 文件名
     * @param key      键名
     * @param value    键值
     */
    public static void setInt(Context context, String fileName, String key, int value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
        SharedPreferences.Editor edit = sharedPreferences.edit();
        edit.putInt(key, value);
        edit.commit();
    }

    /**
     * 取 int 类型的数据
     *
     * @param context  上下文对象
     * @param fileName 文件名
     * @param key      键名
     * @return
     */
    public static int getInt(Context context, String fileName, String key) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
        return sharedPreferences.getInt(key, -1);
    }

    // ----------------------------------------------------------------------------------------------------

    /**
     * 存 float 类型的数据
     *
     * @param context  上下文对象
     * @param fileName 文件名
     * @param key      键名
     * @param value    键值
     */
    public static void setFloat(Context context, String fileName, String key, float value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
        SharedPreferences.Editor edit = sharedPreferences.edit();
        edit.putFloat(key, value);
        edit.commit();
    }

    /**
     * 取 float 类型的数据
     *
     * @param context  上下文对象
     * @param fileName 文件名
     * @param key      键名
     * @return
     */
    public static float getFloat(Context context, String fileName, String key) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
        return sharedPreferences.getFloat(key, -1);
    }

    // ----------------------------------------------------------------------------------------------------

    /**
     * 存 boolean 类型的数据
     *
     * @param context  上下文对象
     * @param fileName 文件名
     * @param key      键名
     * @param value    键值
     */
    public static void setBoolean(Context context, String fileName, String key, boolean value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
        SharedPreferences.Editor edit = sharedPreferences.edit();
        edit.putBoolean(key, value);
        edit.commit();
    }

    /**
     * 取 boolean 类型的数据
     *
     * @param context  上下文对象
     * @param fileName 文件名
     * @param key      键值
     * @return
     */
    public static boolean getBoolean(Context context, String fileName, String key) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
        return sharedPreferences.getBoolean(key, false);
    }

    // ----------------------------------------------------------------------------------------------------

    /**
     * 删除数据
     *
     * @param context  上下文对象
     * @param fileName 文件名
     * @param key      键名
     */
    public static void remove(Context context, String fileName, String key) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
        SharedPreferences.Editor edit = sharedPreferences.edit();
        edit.remove(key);
        edit.commit();
    }

    /**
     * 删除所有数据
     *
     * @param fileName 文件名
     * @param context  上下文对象
     */
    public static void clear(Context context, String fileName) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
        SharedPreferences.Editor edit = sharedPreferences.edit();
        edit.clear();
        edit.commit();
    }
}
2、代码解析
(1)String 类型的数据操作
  1. 存 String 类型的数据
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
valueString键值
public static void setString(Context context, String fileName, String key, String value) {
    SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
    SharedPreferences.Editor edit = sharedPreferences.edit();
    edit.putString(key, value);
    edit.commit();
}
  1. 取 String 类型的数据,如果 key 不存在,则返回默认值 “”(空字符串)
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
public static String getString(Context context, String fileName, String key) {
    SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
    return sharedPreferences.getString(key, "");
}
(2)int 类型的数据操作
  1. 存 int 类型的数据
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
valueint键值
public static void setInt(Context context, String fileName, String key, int value) {
    SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
    SharedPreferences.Editor edit = sharedPreferences.edit();
    edit.putInt(key, value);
    edit.commit();
}
  1. 取 int 类型的数据,如果 key 不存在,则返回默认值 -1
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
public static int getInt(Context context, String fileName, String key) {
    SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
    return sharedPreferences.getInt(key, -1);
}
(3)float 类型的数据操作
  1. 存 float 类型的数据
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
valuefloat键值
public static void setFloat(Context context, String fileName, String key, float value) {
    SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
    SharedPreferences.Editor edit = sharedPreferences.edit();
    edit.putFloat(key, value);
    edit.commit();
}
  1. 取 float 类型的数据,如果 key 不存在,则返回默认值 -1
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
public static float getFloat(Context context, String fileName, String key) {
    SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
    return sharedPreferences.getFloat(key, -1);
}
(4)boolean 类型的数据操作
  1. 存 boolean 类型的数据
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
valueboolean键值
public static void setBoolean(Context context, String fileName, String key, boolean value) {
    SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
    SharedPreferences.Editor edit = sharedPreferences.edit();
    edit.putBoolean(key, value);
    edit.commit();
}
  1. 取 boolean 类型的数据,如果 key 不存在,则返回默认值 false
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
public static boolean getBoolean(Context context, String fileName, String key) {
    SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
    return sharedPreferences.getBoolean(key, false);
}
(5)其他操作
  1. 删除数据
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
keyString键名
public static void remove(Context context, String fileName, String key) {
    SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
    SharedPreferences.Editor edit = sharedPreferences.edit();
    edit.remove(key);
    edit.commit();
}
  1. 删除所有数据
参数类型说明
contextContext上下文对象
fileNameStringSharedPreferences 文件名
public static void clear(Context context, String fileName) {
    SharedPreferences sharedPreferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE);
    SharedPreferences.Editor edit = sharedPreferences.edit();
    edit.clear();
    edit.commit();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值