Android:SharedPreferences详解+示例

1、简介
SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,一般用来存储一些简单的配置信息。 java

2、存储位置
在/data/data/<包名>/shared_prefs目录下。
编辑器

3、操做数据
SharedPreferences对象自己只能获取数据而不支持存储和修改,存储修改是经过Editor对象实现。
具体操做过程:
ide

一、根据Context获取SharedPreferences对象
二、利用edit()方法获取Editor对象。
三、经过Editor对象存储key-value键值对数据。
四、经过commit()方法提交数据。 函数

4、实例代码 this

public class SharePreActivity extends Activity {

    @Override
      public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
         
         //获取SharedPreferences对象
         Context ct = SharePActivity.this;       
         SharedPreferences sp = ct.getSharedPreferences("MY_PRE", MODE_PRIVATE);
        //存入数据
        Editor editor = sp.edit();
        editor.putString("STR_KEY", "string");
        editor.putInt("INT_KEY", 1);
        editor.putBoolean("BOO_KEY", true);
        editor.commit();
        
        //返回STRING_KEY的值,定义key值错误或者此key无对应value值的话返回""
        Log.d("look_sharePre", sp.getString("STR_KEY", ""));
        //若是OTHER_KEY不存在,定义key值错误或者此key无对应value值的返回值为"other"
        Log.d("look_sharePre", sp.getString("OTHER_KEY", "other"));
     }
 }

 注:在私有目录下生成一个MY_PRE.xml文件,里面采用键值对的形式存储数据。     spa

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

5、方法详解 code

一、getSharedPreferences(String name, int mode)的两个参数的:
    参数1:name, 存储时的名称,好比这里的"MY_PRE";

    参数2:mode,打开方式,通常都用Activity.MODE_PRIVATE、MODE_PRIVATE xml

二、registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener          listener)
    注册一个当preference发生改变时被调用的回调函数 对象

三、unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener      listener):
    删除当前回调函数 接口

四、SharedPreferences.Editor接口
     用于修改SharedPreferences对象的内容,全部更改都是在编辑器所作的批处理,而不是复制回原来的SharedPreferences或持久化存储,直到你调用commit(),才会永久存储。
   

方法说明:
clear():清除内容。
commit():提交修改
remove(String key):删除preference

6、扩展功能

一、音效设置
保存应用程序当前是否 播放音效的状态。当前音效状态处于关闭时,按“+”键来开启音效,而后点击返回按钮退出程序 ,再次启动应用程序,如今的音效状态就处于开的状态。保存操做是放在 back按钮的监听事件里边完成的。 在这个程序中咱们在退出时把音效状态保存到 Preferences 中,所以在启动时就读取出上次保存的数据。上次保存的是什么状态 ,在打开的时候就是什么状态。

二、记住密码

相关文章
相关标签/搜索