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 ...
随机推荐
- [原]Unity3D深入浅出 - 摄像机组件(Camera)
在Unity中创建一个Camera后,除了默认带一个Transform组件外,还会附带Flare Layer.GUI Layer.Audio Listener等4个组件,如下图. ClearFlags ...
- Mint Linuxubuntu 字体配置文件
<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd"><fon ...
- windows 7环境下配置oracle 11g 客户端
首先要去官网上下载oracle 11客户端,(我用的是64位系统)地址: http://www.oracle.com/technetwork/database/features/instant-cli ...
- mkimage工具 加载地址和入口地址 内核启动分析
第三章第二节 mkimage工具制作Linux内核的压缩镜像文件,需要使用到mkimage工具.mkimage这个工具位于u-boot-2013. 04中的tools目录下,它可以用来制作不压缩或者压 ...
- MSP430的比较器
这两天研究了一下430的比较器,开始的时候,没有看懂是怎么一回事,在网站看这方面的博客,好像懂了,但是一到编程,就变得无从下手,但是,皇天不负有心人,笔者还是把他弄懂了 其实这里就是看懂一幅图,两个寄 ...
- 解析XML最快速的方式
采用提JAXB技术 1.根据xml生成xsd 执行:java -jar trang.jar a.xml a.xsd 2.根据java的xjc来生成实现类 执行:xjc a.xsd 注:在执行前最好把数 ...
- Java内存管理原理及内存区域详解
一.概述 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途以及创建和销毁的时间.Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如下 ...
- Go: using a pointer to array
下面的不是指针指向数组,而是指针指向Slice I'm having a little play with google's Go language, and I've run into someth ...
- jquery-ui 之draggable详解
举一个例子: <div class="box"> <div id="draggable"> <p>Drag me aroun ...
- 自定义实现MPVolumeView音量控件
http://blog.csdn.net/theonezh/article/details/8158420 http://www.cnblogs.com/cate/ios/ http://www.cn ...