Android 使用SharePreferences保存List集合,并取出值

第一种情况:SP保存集合数据
基本思路是将List数据转换成json格式字符串数据,再将String保存到本地SP当中,取值的时候再把保存的json字符串进行解析,获取到值就OK啦

       val list = ArrayList<String>()
       list.add("需要保存的内容")
       val gson = Gson()
       val json = gson.toJson(list)
       SPUtils.put(this,"content",json)
        val json = SPUtils.get(this, "content", "") as String
        val gson = Gson()
        val type = object : TypeToken<List<String>>(){

        }.type
        val result = gson.fromJson<List<String>>(json, type)

第二种情况:保存历史记录(SP的数据不被覆盖)

有时候项目中只有一小部分需使用保存历史记录,如果使用数据库有点杀猪焉用牛刀的感觉,那如何用SP保存多条历史记录了,基本的实现思路就是在第一种情况的基础上,把保存记录之前的数据先查询出来,再用集合addAll进去,然后再次保存新的集合,这样就实现了每次SP进去的数据不会被覆盖掉

  	 val list = ArrayList<String>()

	 val json = SPUtils.get(this, "content", "") as String
     val gson = Gson()
     val type = object : TypeToken<List<String>>(){

     }.type
     val result = gson.fromJson<List<String>>(json, type)
     
	if (result == null){
   	 list.add("首次保存的内容")
	}else{
	    list.add("再次保存的内容")
	    list.addAll(result)
	}
    val json = gson.toJson(list)
    SPUtils.put(this,"content",json)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值