`
445822357
  • 浏览: 736362 次
文章分类
社区版块
存档分类
最新评论

Android开发之数据存储SharedPreferences

 
阅读更多

SharedPreferences是一种轻型的数据存储方式,本质是基于XML文件存储Key-Value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储和修改是通过Editor对象实现。

获取SharedPreferences的两种方式:

  1. 调用Activity对象的getPreferences(int mode)方法
  2. 调用Context对象的getSharedPreferences(String name, int mode)方法
  3. 调用Context对象的getDefaultSharedPreferences(Context context)方法
SharedPreferences可以保存Boolean、Int、Float、Long、String等类型,一般是SharedPreferences.Editor的putXXX()方法保存,并commit()方法提交或者是remove()方法移除,clear()方法清空,当然操作完成后需要commit()方法提交。

1. 调用Activity对象的getPreferences(int mode)方法

通过此方法获得的SharedPreferences对象只能在该Activity中使用,在Activity中可以调用getPreferences(int mode)方法获得一个SharedPreferences,文件名和Activity名一致。

四种操作模式:

  1. Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,对应数字0;
  2. MODE_WORLD_READABLE:表示当前文件可以被其他应用读取,对应数字1;
  3. MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入,对应数字2;

2. 调用Context对象的getSharedPreferences(String name, int mode)方法
自定义偏好设置,通过此方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享。

保存到SharedPreferences:

SharedPreferences preferences=getSharedPreferences("user",Context.MODE_PRIVATE);
Editor editor=preferences.edit();
String name="xixi";
String age="22";
editor.putString("name", name);
editor.putString("age", age);
editor.commit();
从SharedPreferences:

SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);
String name=preferences.getString("name", "defaultname");
String age=preferences.getString("age", "0");

3.调用Context对象的getDefaultSharedPreferences(Context context)方法


每个应用有一个默认的偏好文件preferences.xml,使用getDefaultSharedPreferences获取

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
System.out.println("set_location = "+preferences.getBoolean("if_set_location", false));
Editor editor =  preferences.edit();
editor.putBoolean("if_set_location", false);
editor.commit();
"if_set_location"可能对应的是CheckBoxPreference或者其它,但是通用get***来获取值

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory android:title="位置信息设置">
    <CheckBoxPreference
    android:key="set_location"
        android:title="打开或关闭位置信息"
        android:summary="更改您的位置设置,打开或者关闭位置共享"
        android:defaultValue="true"
    />
    <Preference
    android:key="set_sys_location"
        android:title="系统位置功能设置"
        android:summary="点击到系统设置页面打开或关闭GPS位置功能"
    />
    </PreferenceCategory>
</PreferenceScreen>


SharedPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。

参考:http://samyou.iteye.com/blog/1190698

http://www.cnblogs.com/wisekingokok/archive/2011/09/16/2177833.html



分享到:
评论

相关推荐

    Android开发之数据存储的四种方式之SharedPreferences

    Android项目开发中使用的数据存储方式有:网络存储、sqlite存储、File存储和SharedPreferences存储,四种存储方式对应的Demo别人是NetworkDemo、SqliteDemo、FileDemo和SharedPreferencesDemo,根据应用的场景选择...

    Android中DataStore替代SharedPreferences

    Jetpack DataStore 是一种改进的新数据存储解决方案,允许使用协议缓冲区存储键值对或类型化对 象。 DataStore 以异步、一致的事务方式存储数据,克服了 SharedPreferences(以下统称为SP)的 一些缺点。 DataStore ...

    Android项目设计与开发:SharedPreferences.ppt

    嵌入式Android项目设计与开发 第六章 数据存储 ——SharedPreferences 2 SharedPreferences 键值对概念: 某一个数据都由一个键和一个值构成,键代表数据的名称,它是全局唯一的。具体的数据内容存放在值中。 键值对...

    Android案例:登录界面,记住登录密码。利用数据存储SharedPreferences

    利用数据存储的SharedPreferences开发技术,实现了一个简易的登录界面,可以记住登录密码等。

    Android开发之数据存储的四种方式之一:Network存储

    在上一篇《Android开发之数据存储的四种方式之一:SharedPreferences》中介绍了SharedPreferences存储本地数据的应用,在这个案例里,封装了HttpURLConnection请求、HttpClient请求和AsyncHttpClient请求,将需要...

    Android项目设计与开发:SharedPreferences 1.ppt

    嵌入式Android项目设计与开发 第六章 数据存储 ——SharedPreferences 1 SharedPreferences 键值对概念: 某一个数据都由一个键和一个值构成,键代表数据的名称,它是全局唯一的。具体的数据内容存放在值中。 键值对...

    移动应用开发android SharedPreferences

    SharedPreferences用于简单的数据存储,是通过“name-value对”的机制存储数据,可以存储一些基本的数据类型包括:Boolean,string,float,long和integer类型。 数据是存储在XML文件中的。

    Android基础 布局、数据存储访问、XML系列化解析和SharedPreferences入门

    3、数据存储与访问 主要介绍存储文件到外部存储器和内部存储器,利用系统提供的API获取路径时,需要精准的掌握他们的目录层级。在将数据保存到SDCard时,需要判断剩余存储空间。 SharedPreferences存储对于简单的...

    Android案例:短信草稿箱。利用数据存储SharedPreferences,实现保存、读取短信

    利用数据存储的SharedPreferences开发技术,实现了一个简易的短信草稿箱,其功能模块包括保存短信、读取短信等。

    Android SharedPreferences实现数据存储功能

    除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,不同于文件的存储方式,SharedPreferences是使用键值对(key-value)数据的方式来存储数据的。而且SharedPreferences还支持多种不同的数据类型...

    Android案例:注册名片。利用数据存储的SharedPreferences

    利用数据存储的SharedPreferences开发技术,实现了一个简易的注册名片功能,可以实现名片的保存和读取等。

    老罗android开发视频教程全集百度网盘下载

    【第一版第九章】老罗Android开发视频--存储数据和文件(7集) 【第一版第十章】老罗Android开发视频--对话框介绍(4集) 【第一版第十一章】老罗Android开发视频--通知的使用(2集) 【第一版第十二章】老罗...

    上海建桥学院-移动应用开发-实验报告3-Android数据存储

    实验三 Android数据存储 一、实验目的及要求 (1) 掌握Android的SharedPreferences的使用 (2) 掌握在Android中使用SQLite的方法 二、实验内容及步骤 任务:根据下述要求实现对应程序 1、 根据所给界面1完成登入...

    实验10-Android数据存储和IO.doc

    实验报告封面 课程名称: Android平台开发与应用 课程代码: SM3004 任课老师: 梁郁君 实验指导老师: 梁郁君 实验报告名称:实验10 Android数据存储与IO 学生姓名: 学号: 教学班: 递交日期: 签收人: 我申明,...

    《Google Android开发入门与实战》

    第8章 移动信息仓库——Android的数据存储操作之轻轻地我保护——SharedPreferences存储-1 第8章 移动信息仓库——Android的数据存储操作之轻轻地我保护——SharedPreferences存储-2 第9章 我来“广播”你的“意图”...

    Android应用中使用SharedPreferences类存储数据的方法

    在Android系统中提供了...SharedPreferences是一种轻量级的数据存储方式,学过Web开发的同学,可以想象它是一个小小的Cookie。它可以用键值对的方式把简单数据类型(boolean、int、float、long和String)存储在应用程序的

    Android应用开发SharedPreferences存储数据的使用方法

    SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)。SharedPreferences常用来存储一些轻量级的数据. 代码如下: //实例化SharedPreferences对象(第...

    实验六、数据存储和访问(一).docx

    android studio应用程序开发作业,实验数据存储和访问。1、制作启动界面如下图所示 2、选择“教师”,点击“登录”按钮,使用保存在SharedPreferences里的帐号信息验证用户名和密码。登录成功后跳转到如下界面。

    ANDROID移动开发基础案例教程

    第3~8章主要讲解Android中的数据存储以及四大组件,包括文件存储、SharedPreferences、SQLite数据库、Activity、BroadcastReceiver、Service、ContentProvider等。第9章主要讲解Android中的网络编程,包括HTTP协议...

    Android开发笔记之Android中数据的存储方式(二)

    今天我们在讲下Android开发笔记之Android中数据的存储方式(一) 提到的除了SharedPreferences和Files(文本文件)以外的其他几种数据储存方式:xml文件、SQLite数据和Network。 1.3 例子  3. xml:  小案例:...

Global site tag (gtag.js) - Google Analytics