数据存储之SharePreference

翻译 2012年12月31日 10:30:34

SharePreference

这个类可以用来保存一些应用程序要的配置或简单的数据,对于大量数据可能力有不逮,类似于WIN下面的ini文件。

数据会被保存在/data/data/PACKAGE_NAME /shared_prefs 。

对象的创建:

 getSharedPreferences(String filename, int mode);

公共函数:

abstract boolean  contains(String key)   检查文件中是否包含这个key

abstract SharedPreferences.Editor  edit()  创建一个Editor对象,通过这个对象可以改变数据,注意的是数据被修改后需要使用函数commint()进行提交。

abstract Map<String, ?>  getAll() 获取文件中所有的数据。

abstract boolean  getBoolean(String key, boolean defValue) 获取一个boolean类型的数据,下面的几个函数非常类似。

abstract float  getFloat(String key, float defValue) 

abstract int  getInt(String key, int defValue) 

abstract long  getLong(String key, long defValue) 

abstract String  getString(String key, String defValue) 

abstract Set<String>  getStringSet(String key, Set<String> defValues) 

abstract void  registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener) 注册一个回调函数,当preference被修改时调用。

abstract void  unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener) 

一个简单的例子:

SharedPreferences sh=getSharedPreferences("data", 0);

SharedPreferences.Editor editor=sh.edit();//创建一个editor对象,要注意。

editor.putString("key1", "test1..");

editor.putString("key2", "test2..");

editor.commit();

System.out.println(sh.getString("key1", "null")+"---"+sh.getString("key2", "null"));


如果使用:

sh.edit().putString("key1", "test1..");

sh.edit().commit();

就会发现没有保存任何内容,为什么呢? 因为下面那个sh.edit().commit();实际上创建了一个新的edit并提交了,前面那个edit并没有提交,内容当然没有保存了

Android开发:一个SharedPreference的工具类,方便保存和读取数据

我们平常保存一些数据,都会用到SharedPreferences,但是对它操作会有点麻烦,所以这里写了一个工具类SharedPreferencesHelper,代码如下,采用单例模式进行封装: pub...
  • liuyi1207164339
  • liuyi1207164339
  • 2015年11月29日 16:16
  • 3031

SharedPreference为什么不适合存储大量数据

转自:http://www.cnblogs.com/mingfeng002/p/5970221.html SharedPreference是Android上一种非常易用的轻量级存储方式,由于其API...
  • u010335298
  • u010335298
  • 2017年06月06日 16:25
  • 1774

Android开发笔记——SharedPreferences 存储实体类以及任意类型

日常开发中我们常常要用到保存数据,Android中常用的存储方式有SQLite,sharedPreferences 等,当然也有各自的应用场景,前者适用于保存较多数据的情形,后者责倾向于保存用户偏好设...
  • u014626094
  • u014626094
  • 2015年08月02日 12:40
  • 4321

Android数据存储方式:SharePreference、SQLite、ContentProvider有什么不同?

在Android中一共提供了4种数据存储方式,由于Android中数据基本是私有的,如果需要在其他应用程序中使用这些数据,就要使用 Android提供的ContentProviders。 Andr...
  • kent_kent_kent
  • kent_kent_kent
  • 2014年12月18日 21:13
  • 713

Android数据存储方式:SharePreference、SQLite、ContentProvider有什么不同?

在Android中一共提供了4种数据存储方式,由于Android中数据基本是私有的,如果需要在其他应用程序中使用这些数据,就要使用Android提供的ContentProviders。 Androi...
  • wangzirui0001
  • wangzirui0001
  • 2012年06月27日 15:19
  • 687

【Android】数据存储之Sharepreference

官方API对于Sharepreference是这样描述的: 这个方法一般是为了存储具有Key-Value特征的数据。 我们可以从一个上下文对象中获取共享应用,他提供一个框架在保存和...
  • chunyang2178
  • chunyang2178
  • 2013年11月11日 11:19
  • 3298

android数据存储方式之一:SharePreference Demo

很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果...
  • yearafteryear
  • yearafteryear
  • 2013年05月25日 14:33
  • 14496

数据存储之sharePreference

Shared Preferences 类似于winform中做一些小型配置的ini文件,用来保存一些用户设置的参数。例 如,可以通过它保存上一次用户所做的修改或者自定义参数设定,当再次启动程序后依然保...
  • dxh040431104
  • dxh040431104
  • 2011年01月07日 13:34
  • 9350

数据存储之SharePreference

数据存储的方式有五种:           SharePreference、SQLite、Content Provider、File和 网络存储数据。           根据最近对ShareP...
  • j67065
  • j67065
  • 2012年07月10日 10:38
  • 1513

Android数据存储方式之:SharePreference

做开发肯定离不了数据,因为编程=算法+数据。做Android应用开发常用到的数据存储方式有以下五种: 1 ,使用SharedPreferences存储数据 2, 文件存储数据 3...
  • true100
  • true100
  • 2015年03月26日 14:46
  • 904
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据存储之SharePreference
举报原因:
原因补充:

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