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月前
SharedPreferences工具类
SharedPreferences工具类
34 0
|
7月前
|
存储 XML 文件存储
Android数据存储:什么是SharedPreferences?它有什么用途?
Android数据存储:什么是SharedPreferences?它有什么用途?
282 0
|
存储
1-SII--SharedPreferences完美封装
零、前言 以前我的SharedPreferences封装类根据不同类型getXXX,setXXX分好多情况。现在回过头看看,咱也是玩过泛型的。 突然灵光一闪,"少年,看你骨骼惊奇,泛型了解一下吗。
1098 0
|
存储 XML 安全
SharedPreferences VS MMKV
简单了解 Android 轻量级存储 SharedPreferences 和 MMKV!
825 0
SharedPreferences VS MMKV
|
存储 XML 数据格式
SharedPreferences源码解析
终于建了一个自己个人小站:https://huangtianyu.gitee.io,以后优先更新小站博客,欢迎进站,O(∩_∩)O~~ 1.简介 写这篇博客目的在于巩固自己对SharedPreferences的理解。
1206 0
|
XML 数据格式 Java
全面剖析SharedPreferences
1.原理和概述 1.储存于硬盘上的xml键值对。 2.轻量级数据储存,数据多了容易引起性能问题 3.xml文件所在目录位于/data/data//shared_prefs/,可以有多个文件。
989 0
|
存储 Android开发 数据格式
|
存储 数据格式 JSON
sharedpreferences如何保存对象
昨天做了一个搜索历史的功能,然后根据搜索的历史可以调回到上一个页面,这里涉及到一个用sharedpreferences保存对象的问题,sharedpreferences是不能够直接保存对象的,我们需要将对象序列化成一个字符串进行存储。 例如:PlayList这样一个对象 public static void getJsonStringByEntity(Context c
1430 0