Android SharedPreferences存取操作以及封装详解
作者:FranzLiszt1847 发布时间:2022-11-02 07:10:19
标签:Android,SharedPreferences,存取,封装
存
首先初始化
private SP sp;
sp = new SP( context );
存入数据
第一个参数为上下文,第二个参数为key,第三个参数为要存入的数据Value
sp.PutData( context,"AccessToken",AccessToken );
取
初始化
private SP sp;
sp = new SP( context );
取出数据
第一个参数为上下文,第二个参数为存入数据时定义的名称,第三个数据为取出数据的默认类型(这个参数很关键,再封装类转换类型时尤为重要)
AccessToken = (String) sp.GetData( context,"AccessToken","" );
封装类
public class SP {
private static SP spInstant;
private String defaultModelName;
public SP(){
}
public SP (Context context){
if (spInstant == null){
spInstant = new SP( );
spInstant.defaultModelName = context.getResources().getString( R.string.DefaultModelName );
}
}
public void PutData(Context context,String key,Object value){
PutData( context,defaultModelName,key,value );
}
private void PutData(Context context,String defaultModelName ,String key,Object value){
SharedPreferences preferences = context.getSharedPreferences( defaultModelName,Context.MODE_PRIVATE );
SharedPreferences.Editor editor = preferences.edit();
if (value instanceof Boolean){
editor.putBoolean( key,(Boolean) value );
}else if (value instanceof Integer){
editor.putInt( key,(Integer)value );
}else if (value instanceof Float){
editor.putFloat( key,(Float)value );
}else if (value instanceof Long){
editor.putLong( key,(Long)value );
}else if (value instanceof String){
editor.putString( key,(String)value );
}else{
return;
}
editor.apply();
}
public Object GetData(Context context,String key,Object defaultValue){
return GetData( context,defaultModelName,key,defaultValue);
}
private Object GetData(Context context,String defaultModelName,String key,Object defaultValue){
SharedPreferences preferences = context.getSharedPreferences( defaultModelName,Context.MODE_PRIVATE );
if (defaultValue instanceof Boolean){
return preferences.getBoolean( key,(Boolean) defaultValue );
}else if (defaultValue instanceof Integer){
return preferences.getInt( key,(Integer) defaultValue );
}else if (defaultValue instanceof Float){
return preferences.getFloat( key,(Float) defaultValue );
}else if (defaultValue instanceof Long){
return preferences.getLong( key,(Long) defaultValue );
}else if (defaultValue instanceof String){
return preferences.getString( key,(String) defaultValue );
}else{
return null;
}
}
}
来源:https://blog.csdn.net/News53231323/article/details/120434977


猜你喜欢
- 场景yitter-idgenerator 是基于雪花算法进行改造的分布式ID自增算法,集成时需要为每个服务设置唯一的机器号,才能保证生成的I
- android获取手机通讯录联系人信息private void getPhoneContacts() {
- 半路开始看的朋友可以回顾一下前几篇java并发编程专题(一)----线程基础知识java并发编程专题(二)----如何创建并运行java线程
- 多线程可以说是面试官最喜欢拿来问的题目之一了,可谓是老生之常谈,不管你是新手还是老司机,我相信你一定会在面试过程中遇到过有关多线程的一些问题
- 本文实例为大家分享了Java Socket编程实现多人交互聊天室的具体代码,供大家参考,具体内容如下本项目由三个.java文件(
- 对于clear与new Map的区别。我们首先来看一个例子,本例子是我在实际开发中遇到的,需求就是讲map放入到list中,说白了就是lis
- 本文实例讲述了Android中ListView下拉刷新的实现方法。分享给大家供大家参考,具体如下:ListView中的下拉刷新是非常常见的,
- 项目结构:pom.xml文件: <parent>
- 在 Spring 中,有以下三种方式来创建数据源:通过 JNDI 获取应用服务器中的数据源;在 Spring 容器中配置数据源;通过代码来创
- 关于Path之前写的也很多了,例如path绘制线,path绘制一阶,二阶和三阶贝塞尔路径,这些都是path的基本用法。今天我要带大家看的是P
- SpringBoot JPA分页查询指定列并返回指定实体用习惯Mybatis,没用过jpa 真是各种踩坑了脑壳疼,一个分页弄老半天,原来就一
- 这些天忙着刷题,又怕遗忘了spring boot, 所以抽出一点时间折腾折腾,加深点印象。 spring boot 的文件上传与 sprin
- MDC介绍MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 、logback及log4j2 提供的
- JSON.toJSONString格式化成json字符串时保留null属性使用阿里的com.alibaba.fastjson.JSON格式化
- 因重定向无法正常goBack()解决方案首先说下问题,初始页面为A,点击某个链接跳转到B(http://xxx.com.cn/),B页面重定
- 1.把springboot项目打包成三个jar包,并指定端口为14341,14342,143432.下载腾讯云免费ssl证书,解压后会出现如
- using System; using System.Drawing; using System.Collec
- 首先,需要一个电话号码,目前很多账户都是将账户名设置成手机号,然后点击按钮获取手机验证码。 其次,你需要后台给你手机短信的验证接口,各个公司
- 1、SpringBoot配置文件1.1 优先级关于SpringBoot配置文件可以是properties或者是yaml格式的文件,但是在Sp
- 什么是RecyclerViewRecyclerView 是Google推出的最新的 替代ListView、GridView的组件