android学习日记13--数据存储之SharedPreference
android 数据存储
作为一个完整的应用程序,数据存储必不可少。android 提供了五种不同的数据存储方式:SharedPreferences、SQLite、ContentProvider、文件存储、网络存储。
1、SharedPreference
用来存储简单的配置信息,如用户名/密码,以键值对的方式存储,存储位置在/data/data/<包名>/shared_prefs目录下
SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的步骤如下:
1、根据Context获取SharedPreferences对象
2、利用edit()方法获取Editor对象。
3、通过Editor对象存储key-value键值对数据。
4、通过commit()方法提交数据。
实例演示:
Activity代码:
Context ctx = MainActivity.this;
// 获取SharedPreferences实例,第二个参数表示操作模式,这里的意思是覆盖原有的
// 此外还有追加MODE_APPEND,允许其他程序读取MODE_WORLD_READABLE,允许其他程序读取写入MODE_WORLD_WRITEABLE
SharedPreferences sp = ctx.getSharedPreferences("SP", MODE_PRIVATE);
// 获取编辑对象
Editor editor = sp.edit();
// 存入数据
editor.putInt("INT_VAULE", 20);
editor.putString("STRING_VAULE", "hahaha");
editor.putBoolean("BOOLEAN_VAULE", true);
// 根据key取出数据
Log.v("SP", sp.getString("STRING_VAULE", "none"));
// 输出int型要转成 string的
Log.v("SP", sp.getInt("INT_VAULE", -1)+"");
// 删除所有数据,没commit是没生效的
editor.clear();
// 找不到key输出第二个参数 false
Log.v("SP", sp.getBoolean("BOOLEAN_VAULE22", false)+"");
日志输出:

在FileExplorer视图/data/data/com.example.sharedpreferences/shared_prefs生成的SP.xml

但是在模拟器内部存储的文件,当你通过FileExplorer选中某个目录或者文件时,右上角有两个小按钮一个是类似于软盘的按钮一个是类似于手机的按钮,通过这两个按钮就可以从模拟器中拷贝文件或者往模拟器中添加文件。拷贝到电脑查看xml内容:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<int name="INT_VAULE" value="20" />
<string name="STRING_VAULE">hahaha</string>
<boolean name="BOOLEAN_VAULE" value="true" />
</map>
优点:
相对而言更加方便,简洁,适合存储数据量较少的配置信息。
缺点:
只能存储boolean,int,float,long和String五种简单的数据类型,功能单一。
android学习日记13--数据存储之SharedPreference的更多相关文章
- Android 学习笔记之数据存储SharePreferenced+File
学习内容: Android的数据存储.... 1.使用SharedPreferences来保存和读取数据... 2.使用File中的I/O来完成对数据的存储和读取... 一个应用程序,经常需要与用 ...
- android学习日记13--数据存储之File存储
4.文件存储File File即传统的I/O 流存储文件,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的 ...
- android学习日记13--数据存储之SQLite
2.SQLite 开源轻量级数据库,支持92-SQL标准,主要用于嵌入式系统,只占几百K系统资源此外,SQLite 不支持一些标准的 SQL 功能,特别是外键约束(FOREIGN KEY constr ...
- android学习日记13--数据存储之ContentProvide
3.ContentProvider 数据在Android当中是私有的,当然这些数据包括文件数据和数据库数据以及一些其他类型的数据.ContentProvider实现多应用程序间的数据共享类一般利用Co ...
- android学习日记05--Activity间的跳转Intent实现
Activity间的跳转 Android中的Activity就是Android应用与用户的接口,所以了解Activity间的跳转还是必要的.在 Android 中,不同的 Activity 实例可能运 ...
- android学习日记03--常用控件checkbox/radiobutton
常用控件3.checkbox 复选框,确定是否勾选,点击一下勾选,点击第二下取消,当有一系列备选项时适合用checkbox控件,方便用户提交数据. 贴上例子Activity的java代码 packag ...
- android学习日记03--常用控件button/imagebutton
常用控件 控件是对数据和方法的封装.控件可以有自己的属性和方法.属性是控件数据的简单访问者.方法则是控件的一些简单而可见的功能.所有控件都是继承View类 介绍android原生提供几种常用的控件bu ...
- Android开发8:数据存储(二)——SQLite数据库和ContentProvider的使用
前言 啦啦啦各位小伙伴们许久不见了~学期末和过年期间自己忙着做其他事没能及时更新Android开发系列课程的博客,实在是罪过罪过~ 好啦~废话不多说,进入我们今天的主题.今天我们将和大家学习其他的数据 ...
- android学习日记03--常用控件Dialog
常用控件 9.Dialog 我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框 对话框,要创建对话框之前首先要创建Bui ...
随机推荐
- 新功能:Azure Traffic Manager 嵌套配置文件
Jonathan Tuliani Azure 网络 - DNS 和 Traffic Manager 项目经理 我们很高兴地宣布,Azure Traffic Manager 支持 Traffic Ma ...
- WCF HTTPS配置
昨天需要把做好的一个wcf服务发布到服务器站点下的一个虚拟目录中发布过程遇到了一个问题:服务器上的环境是https,因此需要多对配置文件修改于是在网上找啊找,遇到一个问题找一个问题,可是问题依然没解决 ...
- 数列极限---和Gauss(取整)函数有关
- mycat分布式mysql中间件(数据库切分概述)[转]
mysql数据库切分 前言 通 过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制,一旦数据库过于庞大,尤其是当写入过于频繁,很难由一台主机支撑的时 候,我们还是会面临到扩展 ...
- HDU 1520-Anniversary party(树形dp入门)
题意: n个人参加party,已知每人的欢乐值,给出n个人的工作关系树,一个人和他的顶头上司不能同时参加,party达到的最大欢乐值. 分析:dp[i][f],以i为根的子树,f=0,i不参加,f=1 ...
- 【暑假】[深入动态规划]UVa 1380 A Scheduling Problem
UVa 1380 A Scheduling Problem 题目: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=41557 ...
- 【翻译】运行于x86机器上的FreeBSD的PCI中断
来源 http://people.freebsd.org/~jhb/papers/bsdcan/2007/article/article.html 摘要 在拥有多个独立设备的计算机里一个重要的元素是一 ...
- codeforce 603B - Moodular Arithmetic
题意:给出方程 f(kx%p)=kf(x)%p ,f:A->B,不同的映射函数f有几种,其中f,A,B值域为{0,1,2..p-1},p为素数(除了2),k为小于p的一个常数. 思路:明显是求循 ...
- codeforce 600A - Extract Numbers
学习string #include <bits/stdc++.h> #define eps 1e-8 #define M_PI 3.141592653589793 ; using name ...
- [原创]git使用入门
创建git项目并初始化 建立一个新文件夹,然后将该文件夹定义为git项目 Lilis-MacBook-Pro:GitDir lili$ mkdir testgit Lilis-MacBook-Pro: ...