安卓开发入门教程-数据存储_SharedPreferences
发布日期:2021-06-29 18:30:18
浏览次数:2
分类:技术文章
本文共 2206 字,大约阅读时间需要 7 分钟。
关注 ,免费获取全套安卓开发学习资料
什么是SharedPreferences
SharedPreferences是一种以键值对形式保存数据的存储方式.每条数据都需要指定一个唯一键名来进行区分.可以存储布尔型、整型、字符串等基础数据类型.其特点为简单、轻量,适合保存少量简单类型的数据,不适合保存大批量或复杂类型的数据.SharedPreferences的实质是xml格式存储数据的文件.
基础样例
1. 写入和读取数据
- activity代码
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) writeDataBtn.setOnClickListener { writeSharedPreference() } readDataBtn.setOnClickListener { readSharedPreference() } } /** * 像SharedPreference中写入数据 */ private fun writeSharedPreference() { val spFileName = "test_sp_file" val editor = getSharedPreferences(spFileName, Context.MODE_PRIVATE).edit() editor.putString("userName", "萝莉") editor.putInt("age", 16) editor.putBoolean("isBeauty", true) editor.apply() } /** * 从SharedPreference中读取数据 */ private fun readSharedPreference() { val spFileName = "test_sp_file" val sp = getSharedPreferences(spFileName, Context.MODE_PRIVATE) val name = sp.getString("userName", "") val age = sp.getInt("age", 0) val isBeauty = sp.getBoolean("isBeauty", true) Log.d("MainActivity", "姓名:$name") Log.d("MainActivity", "年龄:$age") Log.d("MainActivity", "是否漂亮:$isBeauty") }}
代码说明:
- getSharedPreferences用于获取SharedPreferences对象,第一个参数用于指定存储的文件标识,一个应用中可以存在多个不同的这样的文件;第二个参数保持默认值Context.MODE_PRIVATE,表示私有,仅本应用内可以访问.
- 对应页面布局文件:
窥探内幕
SharedPreferences实质为xml文件,其存储路径在/data/data/应用包名/shared_prefs
目录下.
/data/data/cn.cxy.demo/shared_prefs
可以看到文件名test_sp_file.xml
就来自于代码中指定的名称:val spFileName = "test_sp_file"
文件内容: 备注:
刚安装app后,如果还没有往SharedPreferences写入过数据,那么shared_prefs目录就还不存在.常用函数说明
函数名 | 用途 |
---|---|
putString | 存储字符串类型数据 |
putInt | 存储整型数据 |
putLong | 存储长整型数据 |
putFloat | 存储浮点型数据 |
putBoolean | 存储布尔值,true或false |
putStringSet | 存储字符串集合 |
remove | 删除指定键名对应的数据记录 |
clear | 清空所有存储的数据 |
apply | 修改数据后,提交保存到文件中 |
getString | 以字符串类型读取出数据 |
getInt | 以整型读取出数据 |
getLong | 以长整型读取出数据 |
getFloat | 以浮点型读取出数据 |
getBoolean | 以布尔值读取出数据 |
contains | 判断是否包含某个键名的数据 |
完整源代码
安卓开发入门教程系列汇总
开发语言学习
UI控件学习系列
关注头条号,第一时间获取最新文章:
转载地址:https://cxyxy.blog.csdn.net/article/details/108232735 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月22日 18时20分02秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
scala集合类型,函数
2019-04-29
yarn: 资源调度机制
2019-04-29
spark的shell脚本分析
2019-04-29
推荐算法:基于物品的协同过滤算法
2019-04-29
ubuntu 16:使用系统自带的中文输入法
2019-04-29
docker系列6 :k8s集群[ 解压安装 ]
2019-04-29
maven- idea: 打包可执行jar
2019-04-29
docker系列7: docker搭建mysql
2019-04-29
windows server 2012设置远程连接断开后自动注销
2019-04-29
python基础:list,map,open()文件读写
2019-04-29
Go面向对象-接口
2019-04-29
Go-多路选择和超时控制
2019-04-29
centos7 基于rsync+inotify 实现定时备份
2019-04-29
指定IP进行 文件的分发
2019-04-29
基于http搭建本地yum仓库
2019-04-29
常规邮件基础
2019-04-29
邮件基础之 -- SMTP协议
2019-04-29
Java设计模式--责任链模式
2019-04-29
OpenCV的cvLoadImage函数
2019-04-29
OpenCV中与matlab中相对应的函数
2019-04-29