安卓基础组件023-SharedPerferences

文章目录

sp介绍

是否第一次启动应用

是否同意隐私协议

初始化sp

class spDemoActivity : AppCompactActivity{

private lateinit var sp: SharedPreferences

// 在 onCreate 里面初始化

override fun onCreate(saveInstanceState:BUndle?){

// 其他自动生成的代码

sp getSharedPerferences("sp_demo",MODE_PRIVATE)

}

}

存储

val editor = sp.edit()

editor.putString("name","zhangsan")

editor.putInt("age",18)

editor.apply()

读取数据

val name = sp.getString("name","defaultValue")

val age = sp.getIn("age",0)

自动apply

sp.edit{

editor.putString("name","zhangsan")

editor.putInt("age",18)

}

存储复杂数据类型

gson 添加依赖

在 build.gradle.kts app 级别里面

implementtation("com.google.code.gson:gson:2.12.1")

使用

Gson().toJson(Person("zhangsan",18))

Gson().fromJson(str,Person::class.java)

将字符串转换为list

val list = listOf(

Person(),

Person(),

Person()

)

sp.edit{

putString("personList",Gson().toJson(list))

}

val str = sp.getString("personList)

val list = Gson().fromJson(str,Array::class.java).toList()

移除数据

sp.edt{

remove("name")

}

移除全部数据

sp.edt{

clear()

}

相关推荐
kfzjw0086 分钟前
Android 的一帧完整渲染流程:从 VSYNC 到 Screen 的全链路解密
android
wWYy.1 小时前
Mysql:覆盖索引
android·数据库·mysql
Kapaseker1 小时前
如果我要从 List 中获取一段元素
android·kotlin
三少爷的鞋1 小时前
一次朋友圈发布流程,理解 Kotlin 协程为什么重新定义异步代码组织方式
android
FungLeo2 小时前
Flutter/Android Release 包连不上网?AndroidManifest INTERNET 权限排查实录
android·flutter
wWYy.4 小时前
Mysql:一行数据是怎么存储的?
android·数据库·mysql
漏刻有时11 小时前
PHP GeoJSON转PNG地图渲染程序开发笔记、源码解读、问题复盘与整改方案
android·笔记·php
-SOLO-12 小时前
解决VMware 显示比例被重置的问题
android
alexhilton13 小时前
探究Android Views、Flutter和Compose如何渲染你的UI
android·kotlin·android jetpack
Lesile16 小时前
Android:Hilt框架入门 · 在ViewUI和ComposeUI下的应用
android·android jetpack