Android SharedPreference存储文件三步走

 更新时间:2023年01月05日 10:42:45   作者:知奕奕  
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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android Zxing 转换竖屏扫描且提高识别率的方法

    Android Zxing 转换竖屏扫描且提高识别率的方法

    本篇文章主要介绍了Android Zxing 转换竖屏扫描且提高识别率的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Android控件View的文字周围添加图标

    Android控件View的文字周围添加图标

    这篇文章主要为大家详细介绍了Android控件View的文字周围添加图标,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • Android开发自学笔记(一):Hello,world!

    Android开发自学笔记(一):Hello,world!

    这篇文章主要介绍了Android开发自学笔记(一):Hello,world!本文讲解了创建HelloWorld工程、编写代码、启动模拟器等步骤,需要的朋友可以参考下
    2015-04-04
  • Android的WebView与H5前端JS代码交互的实例代码

    Android的WebView与H5前端JS代码交互的实例代码

    本篇文章主要介绍了Android的WebView与H5前端JS代码交互的实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-07-07
  • Android动画教程之属性动画详解

    Android动画教程之属性动画详解

    这篇文章主要给大家介绍了关于Android动画教程之属性动画的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Android-AnsyncTask异步任务的使用

    Android-AnsyncTask异步任务的使用

    本篇文章主要介绍了Android-AnsyncTask异步任务的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • activity控制对话框风格、显示大小与位置

    activity控制对话框风格、显示大小与位置

    对于对话框风格大家普遍使用PopupWindow,也有许多朋友开发设计时使用的是activity对话框方式,因此,本文对如何通过activity实现与PopupWindow相同的效果进行详细介绍,具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • android错误 aapt.exe已停止工作的解决方法

    android错误 aapt.exe已停止工作的解决方法

    这篇文章主要介绍了android错误 aapt.exe已停止工作的解决方法,需要的朋友可以参考下
    2014-11-11
  • Android_UI 仿QQ侧滑菜单效果的实现

    Android_UI 仿QQ侧滑菜单效果的实现

    相信大家对QQ侧滑菜单的效果已经不陌生了吧,侧滑进入个人头像一侧,进行对头像的更改,我的收藏,QQ钱包,我的文件等一系列的操作,下面小编给大家分享Android_UI 仿QQ侧滑菜单效果的实现,一起看看吧
    2017-04-04
  • Android挂断电话最新实现方法

    Android挂断电话最新实现方法

    大家好,本篇文章主要讲的是Android挂断电话最新实现方法,感兴趣的同学感快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02

最新评论