安卓基础组件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()

}

相关推荐
xiangpanf3 小时前
Laravel 10.x重磅升级:五大核心特性解析
android
robotx6 小时前
安卓线程相关
android
消失的旧时光-19437 小时前
Android 面试高频:JSON 文件、大数据存储与断电安全(从原理到工程实践)
android·面试·json
dalancon8 小时前
VSYNC 信号流程分析 (Android 14)
android
dalancon8 小时前
VSYNC 信号完整流程2
android
dalancon8 小时前
SurfaceFlinger 上帧后 releaseBuffer 完整流程分析
android
用户69371750013849 小时前
不卷AI速度,我卷自己的从容——北京程序员手记
android·前端·人工智能
程序员Android9 小时前
Android 刷新一帧流程trace拆解
android
墨狂之逸才10 小时前
解决 Android/Gradle 编译报错:Comparison method violates its general contract!
android
阿明的小蝴蝶11 小时前
记一次Gradle环境的编译问题与解决
android·前端·gradle