Android中SharedPreferences 的基本使用

1.SharedPreferences简介 

        SharedPreferences 是 Android 平台为应用开发者提供的一个轻量级的存储辅助类,用来保存应用的一些常用配置,它提供了 putString()、putString(Set<String>)、putInt()、putLong()、putFloat()、putBoolean() 六种数据类型。数据最终是以 XML 形式进行存储,产生的文件保存在/data/data/应用包名/shared_prefs目录下,是日常开发非常常用的一个数据存储类。

        常用于:比如我们要保存一个用户是否第一次进入软件、用户的账号、是否勾选了保存密码等等这一类比较简单的信息。

        注意事项:可以看到图中,所有数据在手机root情况下,进入文件夹,都是一展无遗的,所以如果有重要的数据最好是进行加密后再存储

        其文件内容如图:

 

2.SharedPreferences使用方法

2.1实例化

        SharedPreferences的实例化也有几种不同的方法,比如

  • Context类中的getSharedPreferences()方法
  • Activity类中的getPreferences()方法
  • PreferenceManager 类中的 getDefaultSharedPreferences()方法

        这里我们主要讲最常用的Context类中的getSharedPreferences()方法。

/*
需要传入两个参数:
name:也就是你保存到/data/data/应用包名/shared_prefs目录下的文件的名字mode:操作模式MODE_PRIVATE: 保存的数据只能被本应用读、写;MODE_WORLD_READABLE: 保存的数据能被其他应用程序读,但不能写;MODE_WORLD_WRITEABLE: 保存的数据能被其他应用程序读写;MODE_APPEND:检查文件是否存在,存在就往文件加内容,不存在就创建新文件;
*/
SharedPreferences sharedPreferences = getSharedPreferences("filename", MODE_PRIVATE);

2.2Editor

        光有SharedPreferences对象是不能进行数据保存的,需要一个SharedPreferences.Editor对象才能对数据进行插入保存,所以我们还需要实例化一个Editor。

SharedPreferences.Editor editor = sharedPreferences.edit();

2.3存储数据

        有了Editor,我们就能进行存储数据了,可以存储的数据类型也是多达6种:String、int、boolean、float、long还有Set< String > ,所有的数据都是以键值对(key-value)的形式存入到文件中,只需要调用Editor的 .putXxxx() 方法,传入 key 和你需要存储的数据即可。

	    editor.putString("string", "abc");editor.putInt("int", 123);editor.putFloat("float", 0.001f);editor.putBoolean("boolean", true);editor.putLong("long", 123123);editor.putStringSet("str_set", Set<String>);

 2.4提交保存

        put了数据还只是相当于在半路中,想要真正把数据保存下来,还需要进行一个提交,这里的提交又有两种方法:

  • .apply() 无返回值,简单理解成 异步提交
  • .commit() 有返回值(返回true代表存储成功,否则存储失败),简单理解成 同步提交

        所以一般情况下我们是优先选择 .apply() 方法进行提交保存数据的。

editor.apply();

2.4SharedPreferences获取数据

        保存了数据,那么怎么获取?获取的话相比保存数据而言要稍微简单那么一丢丢,获取是不需要Editor对象的,直接使用SharedPreferences对象调用 .getXxxx() 方法,传入你之前保存数据时传入的 key ,然后再传入一个未获取到数据时应用的 默认值 即可获取数据。

/*defValue默认值获取数据时,需要传入 key ,和一个 defValue ,这个默认值,就是当你的key没有找到相应的 key 时,那么就会返回这个 defValue。
*/
sharedPreferences.getString("string","");
sharedPreferences.getInt("string",0);
sharedPreferences.getFloat("string",0);
sharedPreferences.getBoolean("string",false);
sharedPreferences.getLong("string",0);
sharedPreferences.getStringSet("string", Set<String>());

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1539866.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp+renderJS+google map开发安卓版APP非小程序

背景需求 需要在uniapp中接入google地图,研究了一番,都没有找到合适的,现在说一下教程。 效果图 前期工作 这两点缺一不可,否则你啥也看不到。 1、电脑安装L-O-U梯 用于访问G-OO-G-LE的API或者创建google map key。 2、手机安装L-O-U梯 用于显示google地图。我就是手…

二叉树(下)

目录 判断树是否相同 判断树是不是另一棵树的子树 二叉树翻转 判断平衡二叉树 二叉树层序遍历 这篇主要提供一些关于二叉树例题的讲解&#xff0c;如果对二叉树及其基本操作有疑问的可以转至&#xff1a; 二叉树&#xff08;上&#xff09;-CSDN博客二叉树&#xff08;中&…

苹果手机删除的视频怎么恢复?记住这3个秘诀

我们的手机相册中保存着大量珍贵的视频&#xff0c;这些视频记录着日常生活的美好时刻。但是&#xff0c;如果不小心删除了怎么办呢&#xff1f;别担心&#xff0c;今天我们将揭示3个解决手机删除的视频怎么恢复问题的秘诀&#xff0c;下面&#xff0c;跟着小编的步伐&#xff…

Google Gemini 与 OpenAI 激烈竞赛:语音 AI 与未来智能体的技术演进

引言 最近&#xff0c;人工智能领域频频传出令人震惊的消息&#xff0c;尤其是在Google Gemini 和OpenAI两大巨头的竞争中&#xff0c;语音AI和未来智能体的技术发展更是成为焦点。视频中的相关报道提到&#xff0c;Google已经将其最新的语音助手Google Gemini Alive推广给更多…

兔子检测系统源码分享

兔子检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

SpringBoot+vue集成sm2国密加密解密

文章目录 前言认识SM2后端工具类实现引入依赖代码实现工具类&#xff1a;SM2Util 单元测试案例1&#xff1a;生成服务端公钥、私钥&#xff0c;前端js公钥、私钥案例2&#xff1a;客户端加密&#xff0c;服务端完成解密案例3&#xff1a;服务端进行加密&#xff08;可用于后面前…

【AI视频】Runway Gen-2:图文生视频与运动模式详解

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AI视频 | Runway 文章目录 &#x1f4af;前言&#x1f4af;仅图片生成视频方法一&#xff1a;通过Midjourney生成图片方法二&#xff1a;通过Runway预览生成图片注意点 &#x1f4af;图加文生成视频方式一&#xff1a;Midjourney…

DRAFTSIGHT® 2025 新增功能TOP10

1导入 STEP 文件 * • 让所有用户都能从本地磁盘导入 STEP 文件。 • 通过导入 STEP 设计数据&#xff0c;加快 3D 设计工作流程。 优点 通过导入 STEP 3D 模型&#xff0c;现在设计有了更多可能&#xff0c;工作流程效率也得到了提高。 2表格增强 * • 体验增强的表格功能…

全国各省山峰分布SHP数据

数据是GIS的血液&#xff01; 我们在《中国主要山脉矢量示意图分享》和《755M全球山脉数据集分享》文中&#xff0c;分享了全球和全国的山脉分布数据。 现在再为你分享全国各省山峰分布SHP数据&#xff0c;你可以在文末查看该数据的领取方法。 全国各省山峰分布 全国各省山…

【每天学点AI】一个例子带你了解Python装饰器到底在干嘛!

今天我们来聊聊一种能给你的代码变得“加料”的神器——Python装饰器。 就像一杯咖啡&#xff0c;原本它是苦的&#xff0c;为了让它符合我的口味&#xff0c;我给它添加了糖&#xff0c;添加之后就完美的符合了我的口味。 那么&#xff0c;装饰器又是如何给代码进行“加料”呢…

首席数据官的起源?首席数据官CDO职能及对公司价值?

首席数据官&#xff08;CDO&#xff09;的角色诞生于数字化转型的大背景之下。 美国引领了这一趋势&#xff0c;芝加哥在2011年任命了首位市政级首席数据官&#xff0c;紧接着2013年&#xff0c;联邦政府也设立了相应的职位。 到了2019年1月&#xff0c;特朗普签署的《基于循…

Image matting入门

概念 matting就是扣图&#xff0c;本质是预测前景与背景&#xff0c;将前景扣出来。主要应用于影视行业&#xff0c;如拍电影绿幕扣图。和图像分割的区别在于多一个模糊地带&#xff0c;非01分类&#xff0c;变成了预测alpha通道。前景F&#xff0c;背景B&#xff0c;图像I可以…

【OceanBase诊断调优】—— 断连接问题根因分析

背景 当前用户请求执行的链路主要如下&#xff0c;请求从客户端发送到ObProxy&#xff0c;ObProxy将请求路由到对应的ObServer节点&#xff0c;ObServer处理请求发送回包给ObProxy&#xff0c;ObProxy回给客户端。目前整条链路上都可能发生断连接的场景&#xff0c;比如请求处…

【C++ 高并发内存池】高并发内存池项目简介

文章目录 1. 高并发内存池解决的问题2. 内存碎片3. 定长内存池 1. 高并发内存池解决的问题 ⚽概念&#xff1a;高并发内存池是一种专门设计用于高并发环境下的内存管理机制。它的原型是Google的一个开源项目tcmalloc&#xff0c;全称Thread-Caching Malloc&#xff0c;实现了高…

关于SpringBoot项目使用maven打包由于Test引起的无法正常打包问题解决

一、问题描述 在日常工作中&#xff0c;在接手项目时&#xff0c;项目未必是“正常”的&#xff0c;一般平常搭建项目&#xff0c;都不会采用一键式生成的方式&#xff0c;现在说下旧项目&#xff0c;可能项目结构并不是那么简洁&#xff0c;通常都带有与main同层级的test&…

基于Springboot+vue实现的Cosplay论坛系统

基于springbootvue实现的Cosplay论坛系统 &#xff08;源码L文ppt&#xff09;4-066 2.3 系统功能分析 Cosplay论坛系统中采用了Java的springboot框架进行开发&#xff0c;在数据库上选择MYSQL&#xff0c;在功能上Cosplay论坛系统我划分为了普通用户管理模…

maven模块管理和继承聚合

1.分模块设计与开发 分模块即为不同的模块实现不同的功能&#xff0c;方便项目开发和部署。 如下图&#xff1a;pojo为实体模块&#xff0c;tlias为业务模块&#xff0c;utils为功能模块 要在tlias模块中使用其他两个模块&#xff0c;需要在pom文件中加入对应的依赖。 如图&…

PMP--二模--解题--21-30

文章目录 4.整合管理21、 [单选] 项目团队正在与客户就某个软件实施项目密切合作&#xff0c;客户指定一个单一联系点以促进项目活动。需要该联系人来确保构建产品&#xff0c;以便相关用户可以启动测试阶段&#xff0c;由于工作量大, 该联系人无法执行其分配的活动导致项目严重…

【Linux篇】常用命令及操作技巧(基础篇)

&#x1f30f;个人博客主页&#xff1a;意疏-CSDN博客 希望文章能够给到初学的你一些启发&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏支持一下笔者吧&#xff5e; 阅读指南&#xff1a; 开篇说明帮助命令常见的七个linux操作终端实用的技巧跟文件目录…

企业EMS -能源管理系统-能源管理系统源码-能源在线监测平台

能源管理系统是以帮助工业生产企业在扩大生产的同时&#xff0c;合理计划和利用能源&#xff0c;降低单位产品能源消耗&#xff0c;提高经济效益&#xff0c;降低CO2排放量为目的信息化管控系统。 我国能源管理从上世纪80年代中期开始&#xff0c;通过“能量平衡测试”、“能源…