Android SharedPreferences工具类

SharedPreferences轻量存储的详细使用,以及工具类的编写 有没有想过QQ的保存密码功能、自动登录等功能是怎么做的?为什么APP第一次进入会有新手引导,第二次就没了?本文揭晓答案! 阅读详情

一、代码

public class SpUtils {
    private static final String SP_NAME = "Config";

    // 声明SharedPreferences对象
    private SharedPreferences sp;
    // 声明SharedPreferences编辑器,用于用于修改SharedReferences对象中值的接口
    private SharedPreferences.Editor editor;
    // 声明单例
    private volatile static SpUtils mInstance = null;

    /**
     * 构造方法
     */
    private SpUtils() { }

    /**
     * 实现单例,使用双重锁
     * @return
     */
    public static SpUtils getInstance() {
        if (mInstance == null) {
            synchronized (SpUtils.class) {
                if (mInstance == null) {
                    mInstance = new SpUtils();
                }
            }
        }
        return mInstance;
    }

    /**
     * 初始化SharedPreferences
     * MODE_PRIVATE:只限于本应用读写
     * MODE_WORLD_READABLE:支持其他应用读,但是不能写
     * MODE_WORLD_WRITEABLE:其他应用可以写
     */
    @SuppressLint("CommitPrefEdits")
    public void initSp(Context mContext) {
        sp = mContext.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);
        editor = sp.edit();
    }

    /**
     * 写入int值
     * @param key
     * @param values
     */
    public void putInt(String key, int values) {
        editor.putInt(key, values);
        editor.commit();
    }

    /**
     * 获取int值
     * @param key
     * @param defValues
     * @return
     */
    public int getInt(String key, int defValues) {
        return sp.getInt(key, defValues);
    }

    /**
     * 写入String值
     * @param key
     * @param values
     */
    public void putString(String key, String values) {
        editor.putString(key, values);
        editor.commit();
    }

    /**
     * 获取String值
     * @param key
     * @param defValues
     * @return
     */
    public String getString(String key, String defValues) {
        return sp.getString(key, defValues);
    }

    /**
     * 写入Boolean值
     * @param key
     * @param values
     */
    public void putBoolean(String key, boolean values) {
        editor.putBoolean(key, values);
        editor.commit();
    }

    /**
     * 获取boolean值
     * @param key
     * @param defValues
     * @return
     */
    public boolean getBoolean(String key, boolean defValues) {
        return sp.getBoolean(key, defValues);
    }

    /**
     * 删除指定Key
     * @param key
     */
    public void deleteKey(String key) {
        editor.remove(key);
        editor.commit();
    }

}

二、注意事项

1、一定要在使用前initSp(),否则会报空指针异常。

2、实例化sp.edit()会报黄色警告:
SharedPreferences.edit() without a corresponding commit() or apply() call
,则需要添加@SuppressLint(“CommitPrefEdits”),警告便消除。

三、链接

1、SharedPreferences官方API:链接

2、SharedPreferences.Editor官方API:链接

安卓开发之SharedPreferences的工具类分享(包括保存复杂对象) 对简单的数据类型进行存储,也增加了对象的存储,特别是平时比较复杂的类,我们都可以存储到本地后使用 立即下载

相关推荐

SharedPreferences工具类

自定义SharedPreferences,引用对象的理念进行封装

Android SharedPreferences数据存储工具类。需要用到Application类,这个是全局启动类。

Android SharedPreferences数据存储工具类。需要用到Application类,这个是全局启动类。

qq_36570506的博客 522

Mamba-YOLO训练前必看:从环境配置到数据集调整的完整流程

本文详细介绍了Mamba-YOLO目标检测框架的完整训练流程,包括环境配置、数据集优化和模型调参。从硬件准备到依赖安装,再到数据增强和超参数调整,提供了一系列实用技巧和常见问题解决方案,帮助开发者高效训练Mamba-YOLO模型,避免常见踩坑记录。

tech5的博客 827

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

SharedPreferences 是 Android 的一个轻量级存储工具,它采用 `key - value` 的键值对方式进行存储

weixin_52173250的博客 1039

vscode+keil嵌入式软件开发全流程

vscode+keil嵌入式软件开发全流程

AspringQ的博客 6785

ANSYS Fluent 2023R2实战:用欧拉多相流模型搞定流化床模拟(附详细参数避坑)

本文详细解析了ANSYS Fluent 2023R2中欧拉多相流模型在流化床模拟中的应用,包括模型选择、材料属性设置、相间作用力配置及初始化技巧。特别针对高颗粒浓度工况提供参数优化方案,帮助工程师提升模拟精度与效率,适用于化工、能源等领域的流化床反应器设计。

weixin_30938149的博客 269

android sharedpreferences工具类

今天,简单讲讲如何写一个sharedpreferences的工具类。   很简单,把一些重复的操作封装在工具类里,其他地方调用就可以。在网上搜索了比较多的资料,找到一个比较好的工具类。 参考文章:https://blog.youkuaiyun.com/androidsj/article/details/79796194 import android.content.Context; import a...

谢岩的博客 5547

微机原理与接口技术第六版周荷琴课后习题答案及解析(期末重点)

第二章 1.8086/8088CPU可直接寻址多少个内存(字节)单元?多少个I/O端口?它们的外部数据总线各有多少根? 8086/8088CPU使用的是20位地址总线,因此可以直接寻址2的20次方个内存单元(即1,048,576),每个单元大小为1字节,因此可以直接寻址2的20次方个字节的内存。 8086/8088CPU有64K个I/O端口,每个端口占用1字节的地址空间,因此可以直接寻址6...

Wmicheng的博客 1万+

android sharedpreferences 工具类,android sharedpreferences工具类

释放双眼,带上耳机,听听看~!今天,简单讲讲如何写一个sharedpreferences的工具类。很简单,把一些重复的操作封装在工具类里,其他地方调用就可以。在网上搜索了比较多的资料,找到一个比较好的工具类。import android.content.Context;import android.content.SharedPreferences;/*** 作者:Yzp on 2017-03-2...

weixin_42099530的博客 384

工程创新训练大赛智能网联车辆赛道LKA+自动驾驶9000+分数分案例

/获取主车在主车路径上的ST坐标。if (status == AVPStatus::eForwarding) // approaching the parking space接近阶段。if (status == AVPStatus::eForwarding) // approaching the parking space接近阶段。if (status == AVPStatus::eForwarding) // approaching the parking space接近阶段。

handsomeboyou的博客 1133

xenomai内核解析--嵌入式实时linux概述

Linux系统作为一个GPOS(通用操作系统)发展至今已经非常成熟可靠了,并且由于遵循GPL协议,开放所有系统源代码,非常易于裁剪。更重要的是,与其他开源的GPOS或RTOS相比,Linux系统支持多种处理器、开发板,提供多种软件开发工具,同时Linux系统对网络和图形界面的支持非常出色。显然,选择Linux操作系统在产品的开发周期和成本控制方面都有巨大优势。 虽然Linux系统功能强大、实用性强...

wsg1100 3701

Android之SharedPreferences工具类

本工具类永久维护,永久更新,如果各位读者发现有bug或者不合理之处,请留言,博主将第一时间改正。 本工具类提供的功能有: 1.存储五种类型的数据; 2.读取五种类型的数据; 内容如下: import android.content.Context; import android.content.SharedPreferences; import android.conte

bear_huangzhen的专栏 6625

xsens IMU配置

1.安装驱动 sudo apt-get update sudo apt-get install ros-kinetic-xsens-driver 2.配置IMU 设置输出四元数,加速度、角速度、地磁 cd /opt/ros/kinetic/lib/xsens_driver python mtdevice.py --configure "oq,aa,wr,mf" 3.启动IMU roslaunch xsens_driver xsens_driver.launch 转(https://www.cnblo

qq_41585680的博客 2325

android sharedpreferences 工具类,Android 开发SharedPreferences工具类

在我们的移动端项目开发中我想SharedPreferences用的也是比较多的吧所以这时就必须要有一个公共的工具类,所以今天就记录一个超好用的SP工具类话不多说直接上代码首先创建一个名为SharedPreferencesUtils的工具类public class SharedPreferencesUtils {private static final String FILE_NAME="share...

weixin_39609071的博客 327

物料分类账-返工工单(自身)差异分摊逻辑

如上图所示,当月入库的全部消耗,而返工消耗的数量为100PCS,所以返工消耗占总消耗的比例为100pcs/(205pcs+100pcs)=0.327868852。备注:红色箭头的物料号为产品自己本身所产生的价差,就是返工工单所承担的差异,而我们要计算的就是这个值,所以计算价差不会包括此项。价差合计就是不包括初始分摊的价差9153.7,剩下的价差合计就是返工工单自身所承担的差异4465.21。每一次返工工单所承担的差异都会按照价差*承担比例去计算承担的差异,知道承担完所有差异。

Yeol827的博客 2494

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

android SharedPreferences 使用工具类

实际就是对SharedPreferences 做了简单的封装取值以及存值的时候使用起来方便一点 public class SPUtil { public static final String APPNAME = "SharedPreferences名字"; public static void putString(Context context, String key, String s) { SharedPreferences sp = context.getS.

qq_35491100的博客 443

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

马德拉酒:一瓶耐造到反常的加强酒,从酿造到配餐全解析

葡萄酒世界里有一类通过添加烈酒而制成的"加强酒",以波特、雪莉为典型代表。其中,马德拉酒是一种更小众却格外"耐造"的类型,其核心工艺"马德拉化"利用高温、氧化与时间的三重作用,让酒在酿造阶段就主动经历其他葡萄酒极力避免的氧化过程,从而获得焦糖、坚果等复杂香气,开瓶后依然能长期保持稳定。理解马德拉酒,需要从葡萄品种、甜度分级、陈年标识入手,同时掌握适用的保存与配餐方法。无论是作为开胃酒、佐餐酒还是餐后酒,马德拉都展现出极强的场景适配性。从酿造原理到酒标解读,从选购技巧到开瓶后的保存指南,马德拉酒以"耐造"为根

weixin_34396902的博客 401

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Android 封装使用SharedPreferences工具类 添加 获取 删除全部(工具类总结二)

public class SpUtil { public static final String SP_NAME = "config"; private static SharedPreferences sp; // 存储用户id 把key写在这里 使用的时候调用就行 public static final String USER_RUN_NICKNAME = "u...

louyulin的博客 305

Android SharedPreferences 最通用详细齐全工具类

Android SharedPreferences 最通用详细齐全工具类 网上有各种各样的SharedPreferences的工具类,无非就是那么几个,简单封装然后调用每一个封装方法,相当于每次新加一个要存储的key-value都需要去增加新的方法。 本工具,解决了需要一直增加方法的这个痛点问题。 List 新建接口IPreferences 为了统一调用初始化 import org.json....

Schema 945

Android 分享一个SharedPreferences的工具类 方便保存数据

Android 分享一个SharedPreferences的工具类 方便保存数据

ytfghytf的博客 242

【工具类】Android数据存储sharedpreferences加密

//配合上一篇【工具类】AES加密和解密,实现sharedpreferences保存数据进行AES加密; import java.util.List; import java.util.Map; import android.content.Context; import android.content.SharedPreferences; /** * 存储配置信息的工具

优快云博客 2705

Android封装SharedPreferences工具类

工具类基本功能说明: 1、保存基本数据类型数据; 2、读取基本数据类型数据; 3、依据key删除对应value; 4、清除SharedPreferences缓存数据静态方法;

ChinglimCHAN 1164

Android:SharedPreferences操作工具类

package com.example.customlib.util; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Map; import android.content.Context; import android.content.

阿东 986

Android之SharedPreferences两个工具类

相信Android的这个最简单的存储方式大家都很熟悉了,但是有一个小小技巧,也许你没有用过,今天就跟大家分享一下,我们可以把SharedPreferences封装在一个工具类中,当我们需要写数据和读数据的时候,就可以直接通过工具类的set和get方法来完成,类似JavaBean,这样使用起来就比较方便,快捷(建议项目中使用次数比较多使用)。好了,直接看看这段简单的代码吧: public clas

way 8101
上一篇: Android Log工具类
下一篇: Android 时间戳工具类
Android Hai
博客等级 码龄7年 30粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android Hai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值