Android SharedPreferences存取操作以及封装详解

作者:FranzLiszt1847 时间:2022-11-02 07:10:19 

首先初始化


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

标签:Android,SharedPreferences,存取,封装
0
投稿

猜你喜欢

  • Java实现的断点续传功能的示例代码

    2023-05-25 12:17:22
  • 详解c# 类的构造方法

    2023-02-10 17:17:19
  • Java经典面试题汇总:Mybatis

    2021-09-20 07:42:44
  • spring mvc实现登录账号单浏览器登录

    2022-06-28 22:29:47
  • 使用 C# 下载文件的多种方法小结

    2023-11-08 06:59:37
  • Android实现手机振动设置的方法

    2021-08-02 23:46:21
  • 教你怎么使用hadoop来提取文件中的指定内容

    2021-07-08 02:22:50
  • Spring Boot 日志配置方法(超详细)

    2021-09-06 19:08:52
  • springboot实现FastJson解析json数据的方法

    2023-11-27 22:12:48
  • SpringBoot自定义maven-plugin插件整合asm代码插桩

    2021-05-24 02:15:49
  • SpringBoot整合第三方技术的详细步骤

    2023-11-29 08:22:48
  • flutter实现倒计时加载页面

    2023-08-18 23:30:09
  • JAVA过滤标签实现将html内容转换为文本的方法示例

    2022-10-16 21:02:40
  • Java实现堆排序(Heapsort)实例代码

    2023-06-15 02:02:11
  • Spring 中 PageHelper 不生效问题及解决方法

    2021-11-25 11:25:04
  • Android ViewPager实现Banner循环播放

    2022-07-16 06:24:03
  • C#手动操作DataGridView使用各种数据源填充表格实例

    2023-07-20 08:30:31
  • Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException

    2023-11-08 14:48:13
  • Unity3D撤回命令开发详解

    2022-01-15 09:26:21
  • Android应用内悬浮窗Activity的简单实现

    2023-07-28 04:03:00
  • asp之家 软件编程 m.aspxhome.com