博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 学习笔记之SharedPreference
阅读量:5058 次
发布时间:2019-06-12

本文共 2024 字,大约阅读时间需要 6 分钟。

Android 学习笔记之SharedPreference

SharedPreference作为android常用的四种存储方式之一,在轻量级的使用中比较常见

创建、获取sharedpreference

SharedPreferences myPreference;myPreference = getSharedPreferences("myPreference", Context.MODE_PRIVATE);

写入数据

SharedPreferences.Editor editor = myPreferences.edit();String userIfo = "abc";editor.putString("userIfo", userIfo);editor.apply();//editor.commit()

可放入的数据类型有如下所示

1510236-20181101203448437-990519663.png

读数据

myPreference = getSharedPreferences("myPreference", Context.MODE_PRIVATE);String userIfo = myPreference.getStringSet("userIfo", " ");//第二个参数为读取不成功时默认值

但是这样对对象的存储并不方便,我在网上又get到可以使用Gson框架将对象数据转换为String进行存储

需要在build.gradle配置文件中添加如下代码

dependencies {    implementation 'com.google.code.gson:gson:2.8.5'}

Gson 进行 转换

User user = new User();Gson gson = new Gson();String jsonStr = gson.toJson(user); // User对象转换为StringUser user_1 = gson.fromJson(jisonStr, User.class) //String转换为User

所以也能够在SharedPreference中借助putStringSet存储多个对象数据

但是并不建议这样做,SharedPreference只适用于存储体量较小的数据,否则极易造成运行卡顿掉帧等

存储

private SharedPreferences myPreference;user = new User();user1 = new User("abc","123",true);myPreferences = getSharedPreferences("myPreference", Context.MODE_PRIVATE);SharedPreferences.Editor editor = myPreferences.edit();Gson gson = new Gson();String jsonStr = gson.toJson(user);String jsonStr1 = gson.toJson(user1);Set
userSet = new HashSet
();userSet.add(jsonStr);userSet.add(jsonStr1);editor.putStringSet("userIfo", userSet);editor.apply();

读取

private SharedPreferences myPreference;myPreference = getSharedPreferences("myPreference", Context.MODE_PRIVATE);Set
set = new HashSet
();Set userSet = myPreference.getStringSet("userIfo",set);if(userSet.size() == 0){ System.out.println("用户未登陆过"); user = new User();}else{ String[] data = (String[]) userSet.toArray(new String[userSet.size()]); for(String uu : data){ Gson gson = new Gson(); user = gson.fromJson(uu, User.class); System.out.println(user.getUserName()); }}

转载于:https://www.cnblogs.com/pcmpcm/p/9892296.html

你可能感兴趣的文章
HEVC播放器出炉,迅雷看看支持H.265
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
Eclipse 调试的时候Tomcat报错启动不了
查看>>
【安卓5】高级控件——拖动条SeekBar
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android入门之文件系统操作(二)文件操作相关指令
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
java学习笔记之String类
查看>>
pymysql操作mysql
查看>>
Linux服务器删除乱码文件/文件夹的方法
查看>>
牛腩记账本core版本源码
查看>>
Word Break II
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>
jdk从1.8降到jdk1.7失败
查看>>
一些关于IO流的问题
查看>>
mongo备份操作
查看>>
8 -- 深入使用Spring -- 3...1 Resource实现类InputStreamResource、ByteArrayResource
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
一个关于vue+mysql+express的全栈项目(六)------ 聊天模型的设计
查看>>
【知识库】-数据库_MySQL 的七种 join
查看>>