SharedPreferences封装

简介: 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;
        }
    }
}



相关文章
|
5月前
|
存储 Java 开发工具
[Android]序列化原理Parcelable
[Android]序列化原理Parcelable
51 0
|
9月前
|
Java Android开发
Android 中通过Intent传递类对象,通过实现Serializable和Parcelable接口两种方式传递对象
Android 中通过Intent传递类对象,通过实现Serializable和Parcelable接口两种方式传递对象
77 1
|
11月前
|
Android开发
Android的配置文件操作封装,摒弃SharedPreference操作配置漫天乱飞
Android的配置文件操作封装,摒弃SharedPreference操作配置漫天乱飞
|
11月前
|
存储 XML JSON
Android操作配置文件封装类,使用json序列化的方式实现
Android操作配置文件封装类,使用json序列化的方式实现
|
XML 存储 缓存
|
存储
1-SII--SharedPreferences完美封装
零、前言 以前我的SharedPreferences封装类根据不同类型getXXX,setXXX分好多情况。现在回过头看看,咱也是玩过泛型的。 突然灵光一闪,"少年,看你骨骼惊奇,泛型了解一下吗。
1054 0
|
安全 Java Android开发
【Android 安全】DEX 加密 ( Application 替换 | 获取 ContextImpl、ActivityThread、LoadedApk 类型对象 | 源码分析 )
【Android 安全】DEX 加密 ( Application 替换 | 获取 ContextImpl、ActivityThread、LoadedApk 类型对象 | 源码分析 )
120 0
|
存储 XML 数据格式
SharedPreferences源码解析
终于建了一个自己个人小站:https://huangtianyu.gitee.io,以后优先更新小站博客,欢迎进站,O(∩_∩)O~~ 1.简介 写这篇博客目的在于巩固自己对SharedPreferences的理解。
1173 0