Android SharedPreference存储文件三步走
作者:知奕奕
SharedPreferences是安卓平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPreferences中将值取出
SharedPreference
他的使用方法非常简单,不夸张的说,仅需要一个 getSharedPreferences 就可以完成大部分操作
概念与权限
SharedPreference 存储文件的位置在:data/data/你的工程包名/shared_prefs
getSharedPreferences
的第二个参数需要传入一个操作模式,目前仅剩下 MODE_PRIVATE
这一个可选,他表示仅当前 app 可以操作此 SharedPreference
存储数据
存储三步走:
- 使用
getSharedPreferences.edit()
获取一个Editor
对象 - 使用诸如
putString
方法,按照数据类型并以键值对的形式插入数据 - 最后使用
apply()
保存修改
方法一:实例化 editor 后按步骤执行
val editor = getSharedPreferences("data",Context.MODE_PRIVATE).edit() editor.putString("name","jack") editor.apply()
方法二:直接 lambda 解决,免去 apply
getSharedPreferences("data", Context.MODE_PRIVATE).edit { putString("name", "Tom") putInt("age", 28) putBoolean("married", false) }
获取数据
这玩意就更简单了,直接 getSharedPreferences 获取存储文件,然后按照 key 拿到 value 就好了
val prefs = getSharedPreferences("data", Context.MODE_PRIVATE) val name = prefs.getString("name", "") val age = prefs.getInt("age", 0) val married = prefs.getBoolean("married", false) Log.d("MainActivity", "name is $name") Log.d("MainActivity", "age is $age") Log.d("MainActivity", "married is $married")
简单存储案例
设置存取按钮
在 mainactivity 的布局文件中,我们添加俩按钮,一个存东西,一个取东西;
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/saveButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Save Data" /> <Button android:id="@+id/restoreButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Restore Data" /> </LinearLayout>
主代码
写在 MainAcitvity.kt
package com.zhiyiyi.listviewdemo import android.content.Context import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Toast import androidx.core.content.edit import kotlinx.android.synthetic.main.activity_main.* import java.io.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) saveButton.setOnClickListener { getSharedPreferences("data", Context.MODE_PRIVATE).edit { putString("name", "Tom") putInt("age", 28) putBoolean("married", false) } } restoreButton.setOnClickListener { val prefs = getSharedPreferences("data", Context.MODE_PRIVATE) val name = prefs.getString("name", "") val age = prefs.getInt("age", 0) val married = prefs.getBoolean("married", false) Log.d("MainActivity", "name is $name") Log.d("MainActivity", "age is $age") Log.d("MainActivity", "married is $married") } } }
到此这篇关于Android SharedPreference存储文件三步走的文章就介绍到这了,更多相关Android SharedPreference内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!