SharedPreferences

在具体介绍Android的设置界面的实现之前,我们先来介绍一下预备知识,就是Android数据持久化方法中最简单的一种,即使用Preferences的键值对存储方式。这种方式主要用来存储比较简单的一些数据,而且是标准的BooleanIntFloatLongString等类型。

android.content.SharedPreferences是一个接口,用来获取和修改持久化存储的数据。有三种获取系统中保存的持久化数据的方式:

1.publicSharedPreferencesgetPreferences(intmode)

通过Activity对象获取,获取的是本Activity私有的Preference,保存在系统中的xml形式的文件的名称为这个Activity的名字,因此一个Activity只能有一个,属于这个Activity

2.publicSharedPreferencesgetSharedPreferences(Stringname,intmode)

因为Activity继承了ContextWrapper,因此也是通过Activity对象获取,但是属于整个应用程序,可以有多个,以第一参数的name为文件名保存在系统中。

3.publicstaticSharedPreferencesgetDefaultSharedPreferences(Contextcontext)

PreferenceManager的静态函数,保存PreferenceActivity中的设置,属于整个应用程序,但是只有一个,Android会根据包名和PreferenceActivity的布局文件来起一个名字保存。

通过以上方式取得SharedPreferences后就可以对数据进行读取或者保存了。

保存方式如下:

  1. StringSTORE_NAME="Settings";
  2. SharedPreferencessettings=getSharedPreferences(STORE_NAME,MODE_PRIVATE);
  3. SharedPreferences.Editoreditor=settings.edit();
  4. editor.putInt("sourceType",0);
  5. editor.commit();

获得SharedPreferences,如果需要进行保存等修改操作,首先得通过其edit()方法获得SharedPreferences.Editor,然后就可以通过putInt、putString等方法以键值对(key-value)的方式保存数据,或者remove移除某个键(key),及调用clear方法删除所有内容。最后需要调用commit方法是使修改生效。

读取方式如下:

  1. SharedPreferencessettings=getSharedPreferences(STORE_NAME,MODE_PRIVATE);
  2. intsource=settings.getInt("sorceType",1);

读取就更加简单了,只要获得SharedPreferences后,就可以通过getInt、getString等方法获取对应键(key)保存着的数据,如果没有找到key,则返回第二个参数作为默认值。

更多相关文章

  1. andorid 如何构建autofill service和AutofillHints和setImportan
  2. Android(安卓)SQLite数据库升级的问题
  3. Android(安卓): 登录并保存密码
  4. 【Android】数据存储之Shared Preferences
  5. Android应用程序组件Content Provider的共享数据更新通知机制分
  6. Android(安卓)中解析JSON形式的数据
  7. Android基础类之BaseAdapter
  8. [Android(安卓)Pro] 使用CursorLoader异步加载数据 from 3.0
  9. mybatisplus的坑 insert标签insert into select无参数问题的解决

随机推荐

  1. 【android基础】之编写最简单的android谷
  2. Android(安卓)集成支付宝SDK实现快捷支付
  3. 说说我招聘android技术人员的思路(eoe and
  4. Android 6.0以上权限拒绝打开权限设置界
  5. 自定义弹窗的制作
  6. android 笔记 --- Android安全机制之设备
  7. Android或win8 谁能在新互联网时代抗衡IO
  8. Android下利用SharePreference存储序列化
  9. 4.0 Android中资源文件
  10. Android Bitmap内存溢出问题解释