您当前的位置: 首页 >  ar

蓝不蓝编程

暂无认证

  • 0浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

安卓开发入门教程-数据存储_SharedPreferences

蓝不蓝编程 发布时间:2020-08-26 08:39:34 ,浏览量:0

什么是SharedPreferences

SharedPreferences是一种以键值对形式保存数据的存储方式.每条数据都需要指定一个唯一键名来进行区分.可以存储布尔型、整型、字符串等基础数据类型.其特点为简单、轻量,适合保存少量简单类型的数据,不适合保存大批量或复杂类型的数据.SharedPreferences的实质是xml格式存储数据的文件.

基础样例 1. 写入和读取数据
  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,表示私有,仅本应用内可以访问.
  1. 对应页面布局文件:

    
    

窥探内幕

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或falseputStringSet存储字符串集合remove删除指定键名对应的数据记录clear清空所有存储的数据apply修改数据后,提交保存到文件中getString以字符串类型读取出数据getInt以整型读取出数据getLong以长整型读取出数据getFloat以浮点型读取出数据getBoolean以布尔值读取出数据contains判断是否包含某个键名的数据 完整源代码

https://gitee.com/hspbc/SharedPreferenceDemo

关注
打赏
1639405877
查看更多评论
立即登录/注册

微信扫码登录

0.1111s