Android 数据存储之 SharedPreference

转载 2012年03月28日 16:07:44

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

  一、根据Context获取SharedPreferences对象

  二、利用edit()方法获取Editor对象。

  三、通过Editor对象存储key-value键值对数据。

  四、通过commit()方法提交数据。

  具体实现代码如下:

publicclass MainActivity extends Activity {
     @Override
 publicvoid onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
 //获取SharedPreferences对象
        Context ctx = MainActivity.this;       
        SharedPreferences sp = ctx.getSharedPreferences("SP", MODE_PRIVATE);
 //存入数据
        Editor editor = sp.edit();
        editor.putString("STRING_KEY", "string");
        editor.putInt("INT_KEY", 0);
        editor.putBoolean("BOOLEAN_KEY", true);
        editor.commit();
        
 //返回STRING_KEY的值
        Log.d("SP", sp.getString("STRING_KEY", "none"));
 //如果NOT_EXIST不存在,则返回值为"none"
        Log.d("SP", sp.getString("NOT_EXIST", "none"));
     }
 }

   这段代码执行过后,即在/data/data/com.test/shared_prefs目录下生成了一个SP.xml文件,一个应用可以创建多个这样的xml文件。如图所示: 

   SP.xml文件的具体内容如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
 <map>
 <string name="STRING_KEY">string</string>
 <int name="INT_KEY" value="0"/>
 <boolean name="BOOLEAN_KEY" value="true"/>
 </map>

  在程序代码中,通过getXXX方法,可以方便的获得对应Key的Value值,如果key值错误或者此key无对应value值,SharedPreferences提供了一个赋予默认值的机会,以此保证程序的健壮性。如下图运行结果中因为并无值为"NOT_EXIST"的Key,所以Log打印出的是其默认值:“none”。在访问一个不存在key值这个过程中,并无任何异常抛出。  

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



Android本地数据存储之Sharedpreference

Sharedpreference用来保存Android软件的配置参数,Android的设置,音效开关等等信息 它最终以.xml文件保存在/data/data//shared_prefs里 Androi...
  • wu_wxc
  • wu_wxc
  • 2015年10月23日 11:20
  • 2406

Android 数据存储之SharedPreference

Android 数据存储之SharedPreference
  • Houheshuai
  • Houheshuai
  • 2015年12月24日 21:08
  • 203

Android数据存储之SharedPreference

Android数据存储之SharedPreference 在android开发中,对数据进行存储的操作可谓随处可见,那么为什么要进行数据的存储?其实无非是从两个大的方面来考虑,首先,对于开发者来说...
  • u010624986
  • u010624986
  • 2016年12月13日 22:54
  • 688

android 数据存储之 SharedPreference

android 的数据存储方式有四种 一、SharedPreferences 二、SQLite 三、Content Provide 四、File ...
  • LTG01
  • LTG01
  • 2015年10月14日 17:00
  • 312

Android:数据存储之SharedPreference & 文件

Android:数据存储之SharedPreference & 文件存储方式Android主要的数据存储方式包括下列5种, 下文将介绍前2种 1. SharePreference 2. 文件 3...
  • u013647382
  • u013647382
  • 2016年06月12日 11:40
  • 310

Android数据存储之SharedPreference讲解

SharePreference 详解上前言:请关注刘老师讲Android视频,里边有详细讲解在开发中,我们常用到SharedPreference来进行信息存储,本文章将通过三个案例来讲解SharedP...
  • zhiyuan0932
  • zhiyuan0932
  • 2016年09月28日 14:24
  • 1996

Android学习之数据存储---SharedPreference

菜鸟学习android。很多时候我们做软件开发时需要向用户提供软件设置参数功能,例如qq,我们可以设置是否允许陌生人添加为好友,对于参数的保存。如果是window程序我们会用ini保存,如果是j2se...
  • javacjava1234
  • javacjava1234
  • 2013年10月15日 17:57
  • 646

Android之SharedPreference轻量级数据存储

android的配置文件 [html] view plaincopy xml version="1.0" encoding="utf-8"?>   ...
  • miao309410364
  • miao309410364
  • 2014年06月22日 21:26
  • 282

Android 数据存储——SharedPreference

作为一个完成的应用程序,数据存储操作是必不可少的,因此,Android系统提供了四种数据储存方式,分别是:SharedPreference、File、SQLite以及Content Provider。...
  • Thanksgining
  • Thanksgining
  • 2015年02月04日 12:43
  • 1282

数据存储之SharedPreference

数据存储之SharedPreferences 默认存储在/data/data/包名/shared_prefs/文件名 基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息等较...
  • sinat_34383316
  • sinat_34383316
  • 2017年06月22日 17:27
  • 141
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 数据存储之 SharedPreference
举报原因:
原因补充:

(最多只允许输入30个字)