Android SharedPreference存储文件三步走

目录
  • SharedPreference
    • 概念与权限
    • 存储数据
    • 获取数据
  • 简单存储案例
    • 设置存取按钮
    • 主代码

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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Android 使用 SharedPreferences 保存少量数据的实现代码

    1 SharedPreferences 介绍 SharedPreferences是使用键值对的方式来存储数据的 SharedPreferences share = getSharedPreferences("my_file", Context.MODE_PRIVATE); SharedPreferences.Editor editor = share.edit(); // 4 保存数据到文件 editor.putString("account", input_acc

  • Android文件存储SharedPreferences源码解析

    1.我们都知道SharedPreferences 是android可以用来存放key value的的文件. SharedPreferences sp = getSharedPreferences("fileName", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); editor.putString("key","value"); editor.commit(

  • 使用SharedPreferences在Android存储对象详细代码

    为什么不用SQLite? 原因多种:除了面向对象和关系数据库之间的阻抗不匹配时,SQLite可能是矫枉过正(带来了更多的开销)对于一些简单的用例,或者其用法和语句可能会完全不喜欢.其他Android ORM 框架(ORMLite, greenDAO, Sugar ORM, ActiveAndroid, 等)或NOSQL移动数据库,如Couchbase精简版(Beta版在此时间). Couchbase精简版基本上是一个JSON数据库,它们旨在降低复杂性,但是同时又违背了抽象漏洞定律(所有不证自明的

  • Android SharedPreferences存取操作以及封装详解

    存 首先初始化 private SP sp; sp = new SP( context ); 存入数据 第一个参数为上下文,第二个参数为key,第三个参数为要存入的数据Value sp.PutData( context,"AccessToken",AccessToken ); 取 初始化 private SP sp; sp = new SP( context ); 取出数据 第一个参数为上下文,第二个参数为存入数据时定义的名称,第三个数据为取出数据的默认类型(这个参数很关键,再封装类转

  • Android用SharedPreferences实现登录注册注销功能

    Android用SharedPreferences实现登录注册注销功能 前言 本文用SharedPreferences本地缓存账号信息来实现登录注册功能,以及退出注销功能. 一.本文逻辑 本文的注册登录逻辑如下: 1.注册页面:有账号可以直接去登录页面.没有账号的话填写账号密码,检测账号密码不为空,点击立即注册,保存账号信息,跳转到登录页面. 2.登录页面:首先读取缓存的账号密码和是否记住密码,将账号显示,判断记住密码的标志,为空或false,不显示密码,需要输入密码,为true则直接将缓存的密

  • Android SharedPreferences数据存储详解

    目录 前言 SharedPreferences Editor 性能和技巧 示例代码 前言 Android提供了很多种保存应用程序数据的方法.其中一种就是用SharedPreferences对象来保存我们私有的键值(key-value)数据. 所有的逻辑都是基于下面三个类: SharedPreferences SharedPreferences.Editor SharedPreferences.OnSharedPreferenceChangeListener SharedPreferences S

  • Android 文件存储与SharedPreferences存储方式详解用法

    目录 持久化技术简介 文件存储 1. 将数据存储到文件中 2. 从文件中读取数据 SharedPreferences 存储 1. 将数据存储到 SharedPreferences 中 2. 从 SharedPreferences 中读取数据 持久化技术简介 数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或计算机关机的情况下,这些数据也不会丢失.保存在内存中的数据是处于瞬时状态的,而保存在存储设备的数据是处于持久状态的.持久化技术提供了一种机制,可以让数据在瞬时状态和持久状

  • Android SharedPreference存储文件三步走

    目录 SharedPreference 概念与权限 存储数据 获取数据 简单存储案例 设置存取按钮 主代码 SharedPreference 他的使用方法非常简单,不夸张的说,仅需要一个 getSharedPreferences 就可以完成大部分操作 概念与权限 SharedPreference 存储文件的位置在:data/data/你的工程包名/shared_prefs getSharedPreferences 的第二个参数需要传入一个操作模式,目前仅剩下 MODE_PRIVATE 这一个可选

  • Windows下mongodb安装与配置三步走

    前言 最近在重新学习node,所以和同事一起搞了个模仿新浪微博的项目,项目刚开始,所以其他的东西就暂时先不提.这里介绍下mongodb的安装.直接搜索可以看到很多介绍,但是我第一次是失败了,不过看了好几个还是搞成了,接下来我通过三个步骤来介绍下(我这里windows环境哦). 一.简介 MongoDB一种非关系型数据库(NoSql),是一种强大.灵活.可扩展的数据存储方式,因为MongoDB是文档模型,自由灵活很高,可以让你在开发过程中畅顺无比,对于大数据量.高并发.弱事务的互联网应用,Mong

  • oracle创建一个数据库三步走

    以前开发的时候用得比较多的是mysql和sql server,oracle用的比较少,用起来比较生疏,mysql和sql server用起来比较类似,就oracle的使用方式和他们不同,oracle在创建数据库的时候要对应一个用户,数据库和用户一般一一对应,mysql和sql server 直接通过create databse "数据库名" 就可以直接创建数据库了,而oracle创建一个数据库需要以下三个步骤: 创建两个数据库的文件 创建用户与上面创建的文件形成映射关系 给用户添加权限

  • 三步搞定:Vue.js调用Android原生操作

    第一步: Android对Js的接口,新建AndroidInterfaceForJs.js import android.content.Context; import android.os.Build; import android.os.Handler; import android.os.Looper; import android.support.annotation.RequiresApi; import android.util.Log; import android.webkit.

  • Android 个人理财工具三:添加账单页面 上

    ColaBox 登记收支记录终于进入了复杂阶段了.这个界面我也是查找了很多资料以及打开android的源代码看了后才完成了,现在想来Google的开源真是明智的啊. 从前面的登录页面跳转进入添加账单页面.这个页面主要是用来登记收支记录的.说白了就是往数据库录入明细. 表结构如下: db.execSQL("CREATE TABLE bills ("                  + "_ID INTEGER PRIMARY KEY," //id          

  • MySQL五步走JDBC编程全解读

    目录 一.数据库编程的必备条件 二.Java的数据库编程:JDBC 三.JDBC工作原理 四.开发环境搭建 五.MySQL中的JDBC编程 1.五步流程 2.添加信息 3.查询信息 4.删除信息 5.修改信息 一.数据库编程的必备条件 编程语言,如Java,C.C++.Python等 数据库,如Oracle,MySQL,SQL Server等 数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提 供了Java的驱动包mysql-connector-java,需

  • 简单三步,搞掂内存泄漏

    原文地址:http://www.jackslocum.com/blog/2006/10/02/3-easy-steps-to-avoid-javascript-memory-leaks/ 你可能还未知道,你浏览的大多数的js网站,会引起 内存泄漏.听起来有点夸张,但这是事实,难道我会骗你吗?泄漏监视器 Leak Monitor 这是个方便的FireFox扩展,当你离开那页的时候它便会指向JavsScript对象,如果出现泄漏的话会弹出一个窗口显示细节内容,而且能够告诉你是那个对象或函数引起的泄漏

  • Mybatis实现自定义的typehandler三步曲

    第一步实现接口TypeHandler<T> @MappedJdbcTypes(JdbcType.TIMESTAMP)//此处如果不使用该注解,在myabtis-config.xml中注册该typehandler的时候需要写明jdbctype="TIMESTAMP" @MappedTypes(DateTime.class)//此处如果不使用该注解,在myabtis-config.xml中注册该typehandler的时候需要写明javatype="com.sinos

  • 简单三步轻松实现ORACLE字段自增

    第一步:创建一个表. 复制代码 代码如下: create table Test_Table ( ID number(11) primary key, Name varchar(50) not null, Value1 varchar(50) not null ) 第二步:创建一个自增序列以此提供调用函数. 复制代码 代码如下: create sequence AutoID start with 1 //根据需要自己可修改该数值 increment by 1 //步长值 minvalue 1 no

  • 三步将Asp.Net页面输出到EXCEL里

    其实,利用ASP.NET输出指定内容的WORD.EXCEL.TXT.HTM等类型的文档很容易的.主要分为三步来完成. 一.定义文档类型.字符编码 复制代码 代码如下: Response.Clear(); Response.Buffer= true; Response.Charset="utf-8"; //下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开 //filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文

随机推荐