安卓学习专栏——SharedPreferences文件存储(图文+代码)

2024-05-28 05:58

本文主要是介绍安卓学习专栏——SharedPreferences文件存储(图文+代码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

步骤

  • 系列文章
  • 前言
    • 1.实现效果
      • 1.1点击保存数据
      • 1.2文件查找工具
      • 1.3查看数据
    • 3.java功能文件
    • 附录.参考资料
    • 资源下载
  • 总结

系列文章

提示:转到安卓学习专栏,观看更多内容!
点我直达–>安卓学习专栏


前言

    SharedPreferences文件存储。
    
    


1.实现效果

1.1点击保存数据

在这里插入图片描述

1.2文件查找工具

在这里插入图片描述

1.3查看数据

进入到/data/data/com.example.sharedpreferencestest/shared_prefs/目录下,可以看到生成了一个userData.xml文件
在这里插入图片描述


## 2.xml外观文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><Buttonandroid:id="@+id/save_data"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="保存数据"/>
</LinearLayout>

3.java功能文件

首先给按钮注册了一个点击事件,然后在点击事件中通
过getSharedPreferences() 方法指定SharedPreferences的文件名为
data,并得到了SharedPreferences.Editor 对象。接着向这个对象中
添加了3条不同类型的数据,最后调用apply() 方法进行提交,从而完
成了数据存储的操作。

PreferenceManager 类中的getDefaultSharedPreferences()方法
这是一个静态方法,它接收一个Context 参数,并自动使用当前应
用程序的包名作为前缀来命名SharedPreferences文件。得到了
SharedPreferences 对象之后,就可以开始向SharedPreferences文
件中存储数据了,主要可以分为3步实现。
(1) 调用SharedPreferences 对象的edit() 方法来获取一
个SharedPreferences.Editor 对象。
(2) 向SharedPreferences.Editor 对象中添加数据,比如添加一
个布尔型数据就使用putBoolean() 方法,添加一个字符串则使
用putString() 方法,以此类推。
(3) 调用apply() 方法将添加的数据提交,从而完成数据存储操
作。
(以上介绍来自郭老师的第一行代码)


这里的MODE_PRIVATE,有相关的解释: Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND

Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。

Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。

MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;

MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。


package com.example.sharedpreferencestest;import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button saveData = (Button) findViewById(R.id.save_data);saveData.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {SharedPreferences.Editor editor = getSharedPreferences("userData",MODE_PRIVATE).edit();//设置文件名为userData//设置下方的键值对editor.putString("userName", "nanli");editor.putInt("age", 28);editor.putBoolean("isMan", true);editor.apply();}});}
}

附录.参考资料

《第一行代码》6.3.1 将数据存储到SharedPreferences中


资源下载

as项目完整文件下载


总结

大家喜欢的话,给个👍,点个关注!继续跟大家分享敲代码过程中遇到的问题!


这篇关于安卓学习专栏——SharedPreferences文件存储(图文+代码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1009727

相关文章

使用Dify访问mysql数据库详细代码示例

《使用Dify访问mysql数据库详细代码示例》:本文主要介绍使用Dify访问mysql数据库的相关资料,并详细讲解了如何在本地搭建数据库访问服务,使用ngrok暴露到公网,并创建知识库、数据库访... 1、在本地搭建数据库访问的服务,并使用ngrok暴露到公网。#sql_tools.pyfrom

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Java springBoot初步使用websocket的代码示例

《JavaspringBoot初步使用websocket的代码示例》:本文主要介绍JavaspringBoot初步使用websocket的相关资料,WebSocket是一种实现实时双向通信的协... 目录一、什么是websocket二、依赖坐标地址1.springBoot父级依赖2.springBoot依赖

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音

什么是 Java 的 CyclicBarrier(代码示例)

《什么是Java的CyclicBarrier(代码示例)》CyclicBarrier是多线程协同的利器,适合需要多次同步的场景,本文通过代码示例讲解什么是Java的CyclicBarrier,感... 你的回答(口语化,面试场景)面试官:什么是 Java 的 CyclicBarrier?你:好的,我来举个例

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

基于Canvas的Html5多时区动态时钟实战代码

《基于Canvas的Html5多时区动态时钟实战代码》:本文主要介绍了如何使用Canvas在HTML5上实现一个多时区动态时钟的web展示,通过Canvas的API,可以绘制出6个不同城市的时钟,并且这些时钟可以动态转动,每个时钟上都会标注出对应的24小时制时间,详细内容请阅读本文,希望能对你有所帮助...

HTML5 data-*自定义数据属性的示例代码

《HTML5data-*自定义数据属性的示例代码》HTML5的自定义数据属性(data-*)提供了一种标准化的方法在HTML元素上存储额外信息,可以通过JavaScript访问、修改和在CSS中使用... 目录引言基本概念使用自定义数据属性1. 在 html 中定义2. 通过 JavaScript 访问3.

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn