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

  • 2015年10月23日 19:27
  • 161KB
  • 下载

Android 中数据存储(File,SharedPreference,SqliteDatabase)

对于数据存储,android提供了三种方式: File SharedPreference SqliteDatabase File(文件存储)文件存储不对存储的内容进行任何的格式化处理,所有数据都是原封...

Android的5种数据存储方式之sharedpreference

SharedPreference 存储数据

android 数据存储之 SharedPreference

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

android数据存储中的SharedPreference学习记录

相比于文件的存储方式,SharedPreference是使用键值对的方式来存储数据的。本质为xml文件的形式存储,适合存放程序的配 置信息。 SharedPreference仅支持以下数据类型: ...

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

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

Android基础之数据存储SharedPreference和SQLite

SharedPreference 对小规模数据存储非常方便,主要存储一些键值对 一般用来存储用户对应用程序的配置,下面演示了用SharedPreference记录用户设置有无声音的配置 publ...

Android数据存储和提供器——sharedPreference

一,简单分析应用场景:存放基本的配置;           优势:     sharedPreference将数据以键值对的形式保存至XML文件中,而生成XML文件保存于data/data/程序包名(...

android笔记20-数据存储之sharedPreference

sharedPreference: 以xml文件,键值对的方式来存储; 步骤:  第一步:创建SharedPreference对象,并调用PreferenceManager类的静态成员函数get...

Android本地数据存储之Sharedpreference

Sharedpreference用来保存Android软件的配置参数,Android的设置,音效开关等等信息 它最终以.xml文件保存在/data/data//shared_prefs里 Androi...
  • wu_wxc
  • wu_wxc
  • 2015年10月23日 11:20
  • 2156
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 数据存储之 SharedPreference
举报原因:
原因补充:

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