前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android数据存储之SharedPreferences

Android数据存储之SharedPreferences

原创
作者头像
用户8639654
修改2021-07-16 10:42:17
1.1K0
修改2021-07-16 10:42:17
举报
文章被收录于专栏:云计算运维

我们平常在QQ或微信上登录账号时会发现,如果之前登录过账号,则在用户名的输入框中会存在之前输入过的账号信息,这些用户名信息是如何自动显示在界面输入框中的呢?

其实自动在QQ或微信的登录界面显示的用户名信息是存储在QQ或微信的本地数据。

当第一次登录账号时,程序会读取登录时的用户名信息,并将该信息存储到本地,存储数据时常用的两种方式是SharedPreferences文件存储与SQLite数据库存储。

一般少量的数据会存储在SharedPreferences文件中,大量的数据还是需要存储在SQLite数据库中的,所以用户名信息会存储在SharedPreferences文件中。

SharedPreferences是Android平台上一个轻量级的存储类,当程序中有一些少量数据需要持久化存储时,可以使用SharedPreferences类进行存储。

接下来我们就一起开启通往Android数据存储之SharedPreferences的学习旅程吧!

1、将数据存入SharedPreferences文件中

使用SharedPreferences类存储数据时,首先需要调用getSharedPreferences(String name,int mode)方法获取实例对象。

由于该对象本身只能获取数据,不能对数据进行存储和修改,所以需要调用SharedPreferences类的edit()方法获取到可编辑的Editor对象,最后通过该对象的putXxx()方法存储数据,示例代码如下面这样:

代码语言:javascript
复制
//获取sp对象,参数data表示文件名,MODE_PRIVATE表示文件操作模式
SharedPreferences sp = getSharedPreferences("data",MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit(); // 获取编辑器
editor.putString("name", "传智播客");           // 存入String类型数据
editor.putInt("age", 8);                                 // 存入int类型数据
editor.commit();                                           // 提交修改

由上述代码可知,Editor对象是以key/value的形式保存数据的,并且根据数据类型的不同,会调用不同的方法。需要注意的是,操作完数据后,一定要调用commit()方法进行数据提交,否则所有操作不生效。

注意:SharedPreferences中的Editor编辑器是通过key/value(键值对)的形式将数据保存在data/data/<packagename>/shared_prefs文件夹下XML文件中,其中value值只能是float、int、long、boolean、String、Set<String>类型数据。

2、读取与删除SharedPreferences文件中的数据

前面讲解了如何将数据存入到SharedPreferences文件中,当我们需要使用或删除SharedPreferences文件中的数据时,我们该如何读取或删除SharedPreferences文件中的数据呢?下面详细地介绍如何读取和删除SharedPreferences文件中的数据。

(1)读取 SharedPreferences文件中的数据

读取SharedPreferences文件中的数据非常简单,只需要获取到SharedPreferences对象,然后通过该对象的getXXX()方法获取到相应key的值即可,示例代码如下面这样:

代码语言:javascript
复制
SharedPreferences sp = getSharedPreferences("data",MODE_PRIVATE);		
String data	 = sp.getString("name","");    // 获取用户名

需要注意的是,getXXX()方法的第二个参数为缺省值,如果sp中不存在该key,将返回缺省值,例如getString("name", ""),若name不存在则key就返回空字符串。

(2)删除SharedPreferences文件中的数据

如果需要删除SharedPreferences中的数据,则只需要调用Editor对象的remove(String key)方法或者clear()方法即可,示例代码如下面这样:

如果需要删除SharedPreferences中的数据,则只需要调用Editor对象的remove(String key)方法或者clear()方法即可,示例代码如下面这样:

代码语言:javascript
复制
editor.remove("name");     // 删除一条数据
editor.clear();             // 删除所有数据

注意:

SharedPreferences使用很简单,但一定要注意以下两点:

●获取数据的key值与存入数据的key值的数据类型要一致,否则查找不到数据。

●保存SharedPreferences的key值时,可以用静态变量保存,以免存储、删除时写错了。如:private static final String key = “itcast”;

通过本篇文章,希望大家能够掌握如何存储程序中的少量数据,如何将数据存储到SharedPreferences文件中,并且可以对存储在SharedPreferences文件中的数据进行读取和删除操作。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、将数据存入SharedPreferences文件中
  • 2、读取与删除SharedPreferences文件中的数据
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档