前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >[翻译]Android教程-保存数据-保存键值对

[翻译]Android教程-保存数据-保存键值对

作者头像
LeoXu
发布于 2018-08-15 07:16:30
发布于 2018-08-15 07:16:30
2.7K00
代码可运行
举报
文章被收录于专栏:LeoXu的博客LeoXu的博客
运行总次数:0
代码可运行

来源:

http://developer.android.com/training/basics/data-storage/index.html

http://developer.android.com/training/basics/data-storage/databases.html

学习本教程的前置条件:

  • Android 1.6 (API Level 4) 或者更高
  • 熟悉Map键值对集合
  • 数字Java文件IO的API
  • 熟悉SQL数据库

大多数Android应用需要存储数据,即使只是在onPause()期间存储有关应用的状态信息,以便用户的操作进度不会丢失掉。

即使是最非凡的应用也需要存储用户设置,而某些应用则必须在文件和数据库中管理大量的信息。

本课程向你介绍向你介绍在Android中存储数据的主要选择,包括:

  • 在一个共享的首选项文件中保存简单数据类型的键值对
  • 在Android的文件系统中保存任意文件
  • 使用有SQLite管理的数据库

保存键值对

如果你有一小撮键值对想要保存,你就应该使用SharedPreferences API. SharedPreferences对象指向一个包含键值对的文件,并且提供读写这些键值对的简单方法。

每一个SharedPreferences文件由框架来进行管理,并且可以是私有的或者是共享的。

这里向你展示如何使用SharedPreferences API来存储和获取简单的值。

注意:SharedPreferences API只用于读写键值对,而你不应该将它们同Preference API混淆,后者帮助你为你的应用设置构建用户界面(尽管它们使用了SharedPreferences作为它们保存应用设置的实现)。有关Preference的信息,见Settings指南。

得到一个处理SharedPreferences的Handle

通过调用下面两种方法之一,你可以创建一个新的,或者是访问一个已经存在的共享首选项文件:

  • getSharedPreferences() — 如果你需要多个由名称标示的共享首选项文件,就可以使用这个方法. 你可以从任何你的应用中的Context处调用这个方法.
  • getPreferences() — 如果你只需要一个用于activity的共享首选项,就可以使用这个方法. 因为这个方法会获取属于这个activity的共享首选项文件, 你没必要再给这个文件指定一个名称.

例如,下面的代码会在一个Fragment中被执行。它会访问有资源字符串 R.string.preference_file_key标识共享首选项文件, 并且使用私有模式打开它,那样这个文件就只能被你的应用所访问了.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
        getString(R.string.preference_file_key), Context.MODE_PRIVATE);

当为你的共享首选项文件命名时,你应该使用一个能被你的应用识别为唯一的名称,比如“com.example.myapp.PREFERENCE_FILE_KEY”

此外,如果你只需要在你的activity中用到一个共享首选项文件是,你可以使用getPreferences()方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);

注意:如果你创建了带有 MODE_WORLD_READABLE 或者 MODE_WORLD_WRITEABLE的共享首选项文件,那么其它知道这个文件标识的应用也可以访问到你的数据.

写入共享首选项

为了向一个共享首选项文件写入,通过在你的SharedPreferences上调用edit(),创建一个SharedPreferences.Editor。

使用诸如putInt()和putString()方法传入你想要写入的键值对。然后调用commit()来保存更新。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();

读取共享首选项

为了从一个共享首选项文件获取到值,可以调用诸如getInt()和getString()方法,提供键以获取到你想要的值,并且可以选择在这个键值对不存在时返回一个默认值。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014/05/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【专业技术】Android数据保存之SharedPreferences
前言: 程序中处理的大部分问题都与数据有关,读取数据显示在UI上,读取的数据可以是本地的,也可以是网络的。保存用户数据到存储空间,可以是本地的数据库,文件等,也可以是保存到网络服务器。总之大部分的程序都是在和数据打交道。Android中数据保存比较方便灵活,今天就按照官网说说数据保存。 大多数Android应用程序都需要存储数据,在Android生命周期方法onPause中,你可以保存用户在程序中的进度数据,在用户再次进入程序时进行读取恢复。可能一些应用程序不需要保存用户的进度信息,但是用户对于应用程序的设
程序员互动联盟
2018/03/13
1.5K0
Android SharedPreferences的使用
要想使用 SharedPreferences 来存储数据,首先需要获取到 SharedPreferences 对象。Android中主要提供了三种方法用于得到 SharedPreferences 对象。
手撕代码八百里
2020/07/29
1.3K0
Android Training Summary (1) Getting Started
Android Training 中Getting Started部分的阅读笔记
宅男潇涧
2018/08/01
4590
Android Training Summary (1) Getting Started
Kotlin入门(25)共享参数模板
共享参数SharedPreferences是Android最简单的数据存储方式,常用于存取“Key-Value”键值对数据。在使用共享参数之前,要先调用getSharedPreferences方法声明文件名与操作模式,示例代码如下:
aqi00
2019/01/18
9060
【Android】数据存储(一) SharedPreferences详解
SharedPreferences介绍 在Android开发中,经常需要将少量简单类型数据保存在本地,如:用户设置。这些需要保存的数据可能一两个字符串,像这样的数据一般选择使用SharedPreferences来保存。 SharedPreferences:一个轻量级的存储类,特别适合用于保存软件配置参数。(是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下) SharedPreferences可以保存的数据类型有:int、boolean
Gavin-ZYX
2018/05/18
2.7K0
数据存储之SharedPreferences
在Android系统中提供了多张存储技术,这些存储技术可以讲数据保存在各种存储介质上。例如SharedPreferences可以将数据保存在应用软件的私有存储区,这些存储区中的数据只能被写入这些数据的软件读取。除此之外,Android系统还支持文件存储、SQLite数据库、OBB文件、云存储等
小小工匠
2021/08/16
9340
Android之SharedPreferences使用
Sharedpreferences是Android平台上一个轻量级的存储类,用来保存应用程序的各种配置信息,其本质是一个以“键-值”对的方式保存数据的xml文件,其文件保存在/data/data//shared_prefs目录下。在全局变量上看,其优点是不会产生Application 、 静态变量的OOM(out of memory)和空指针问题,其缺点是效率没有上面的两种方法高。
李小白是一只喵
2021/12/06
1.1K0
【Android从零单排系列四十】《Android数据存储方式-SharedPreferences、》
小伙伴们,在前面的一系列文章中我们分别介绍了Android视图控件、Android布局、Android四大组件,本文开始我们介绍一下Android中的数据存储。
再见孙悟空_
2023/07/17
3700
Android存储数据的三种方式
今天来给大家讲一下Android中如何存储数据。我编写Android使用的是Java语言,所以今天讲的也是Java版的数据存储。在Android中,数据存储主要有三种,文件存储、Sp、SQLite。文件存储就是我们平时的IO流,是非常传统的一种方式。而Sp是Android中的,利用XML文件存储数据的一种方式,要比文件存储简单。SQLite就是一个数据库了,基本操作和数据库大致一样。
ZackSock
2020/01/22
1.2K0
学习|Android中SharedPreferences轻量数据存储
有时候我们做的App中不需要本地保存数据,但是有些小的配置参数需要记录,如果中Sqlite就感觉有点太重了,也比较麻烦,所以今天我们来看看Android系统中轻量数据存储SharedPreferences
Vaccae
2020/01/02
6960
第一行代码——数据存储
Context类提供了一个openFileOutput()方法,将数据存到指定文件中。返回一个FileOutpueStream对象。 两个参数: 文件名,不包含路径,因为所有文件都默认存储到/data/data/<package name>/file/目录下; 文件的操作模式:MODE_PRIVATE(默认)和MPDE_APPEND。 MODE_PRIVATE:表示当指定相同文件名的时候,所写入的内容覆盖原文件。 MPDE_APPEND:追加。
SakuraTears
2022/01/13
8150
Carson带你学Android:数据存储SharePreferences学习指南
除了SharedPreferences,Android常见的数据存储方式主要包括:
Carson.Ho
2022/03/24
4620
Carson带你学Android:数据存储SharePreferences学习指南
Android数据存储之SharePreferences简记
之前在项目中有个资料编辑功能,寻找了好久,最终决定使用SharePreferences,可惜当初学的太差,现在只好重新补救,将相关内容整理于此。
WindCoder
2018/09/20
2.2K0
Android数据存储之SharePreferences简记
Android之SharedPreferences的高级使用
SharedPreferences作为Android中的轻量级存储,读写操作都非常简单,使用的也非常广泛。
yechaoa
2022/06/10
2810
android之SharedPreferences简介[通俗易懂]
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存.
全栈程序员站长
2022/07/20
4.5K0
笔记39 | 数据存储之SharedPreferences的介绍及使用
地址 简书:http://www.jianshu.com/p/c10c08affa8f CSDN: http://blog.csdn.net/xiangyong_1521/article/details/51222418 ---- 概念 SharedPreferences:是android提供的一个轻量级的储存方式,当我们需要保存用户的某些settings值,需要轻量级的记忆操作等时使用! SharedPreferences的四种操作模式: Context.MODEPRIVATE:为默认操作模式,代表该文
项勇
2018/06/19
6210
Android开发(23) SharedPreferences详解
Android平台给我们提供了一个SharedPreferences类,它是一个轻量级应用程序内部轻量级的存储方案,特别适合用于保存软件配置参数,
Java架构师必看
2021/05/27
9180
Android的cookie的接收和发送
我们都知道在web端的cookie是可以通过服务器端设置保存的,默认是关闭浏览器就清除cookie的,但是可以在服务器端设置cookie的有效期,浏览器就会自动保存cookie,而在Android上是不会自动保存cookie,我用的是Okhttp3,我找不到response.addCookie(cookie)和request.getCookies()的方法(Java web的操作),如果没有保存和重发cookie给服务器的话,是不会自动登录的。搞了大半天才知道这一切都在head里。
夜雨飘零
2020/05/06
1K0
10.Android-SharedPreferences使用
SharedPreferences,它是一个轻量级的配置文件类,用于保存软件配置参数. 采用xml文件形式存储在/data/data/包名/shared_prefs/下
诺谦
2020/02/12
9280
APP启动引导页的制作,用ViewPager实现翻页动画
这次制作App的引导页,主要用到2个知识“SharedPreferences 和 ViewPager”
爱因斯坦福
2018/09/10
2K0
相关推荐
【专业技术】Android数据保存之SharedPreferences
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档