数据存储之共享参数SharedPreferences

共享参数概述

SharedPreferences是Android的一个轻量级存储工具,采用的存储结构还是我们熟悉的Key-Value的键值对结构,类似于java中的Properties,二者都是把Key-Value的键值对保存在配置文件中。不同的是,Properties的文件内容形如Key=Value,而共享参数SharedPreferences的存储介质是一个xml文件,是用xml的标记保存键值对的。保存共享参数键值对信息的文件路径为:/data/data/应用包名/shared_prefs/文件名.xml。

下面展示一些例子:

<?xml version='1.0' encoding="utf-8" standalone='yes' ?>
<map>
    <string name = "name">Bin</string>// 注意字母都是小写的
    <int name="age" value="22"/>
    <boolean name="single" value="true"/>
    <float name="weight" value ="116"/>
</map>

共享参数应用场景

基于xml的特点:

  1. 简单且孤立的数据。若是复杂且相互关联的数据,则要保存关系数据库。
  2. 文本形式的数据,要是二进制数据,则要保存到文件中。
  3. 需要持久化存储的数据。App退出后再次启动时,之前保存的数据仍然有效。

实际开发中,共享参数经常存储的数据有:App的个性化配置信息、用户使用App的行为、临时需要保存的片段信息等。

用法如下:

// 从share.xml获取共享参数,第一个参数是文件名,这里share是这个共享参数的文件名,第二个参数是操作的模式,例子中的是私有模式
SharedPreferences sharedPreferences = getSharedPreferences("share",MODE_PRIVATE);

我们通常都不会直接的进行一个调用,把它封装成一个共享参数的工具类,更便于我们后面的使用。

public class ToolKits {
    public static SharedPreferences getSharedPreferences(Context context){
        //设置访问模式为此应用私有访问
        return context.getSharedPreferences("com.lcb.myapplication",Context.MODE_PRIVATE);
    }

    public static void putBooble(Context context,String key,Boolean value){
        SharedPreferences sharedPreferences = getSharedPreferences(context);
        SharedPreferences.Editor editor =sharedPreferences.edit();
        editor.putBoolean(key,value);//通过编辑器提交一个布尔值内容
        editor.commit();//编辑器提交内容
    }

    /**
     *
     * @param context
     * @param key
     * @param defaultValue
     * @return 存在值返回对应值,不存在就返回默认值
     */
    public static boolean fetchBooble(Context context,String key,boolean defaultValue){
       return getSharedPreferences(context).getBoolean(key,defaultValue);
    }

需要提交什么类型的参数,对应使用编辑器的不同的方法,例如,

editor.putInt("age",30);
editor.putString("name","A bin");

获取也是用样的道理,只不过把put前缀改成get前缀,例如,

//第一个参数是key值,第二个参数是一个获取的默认值,就是说,如果里面没有值的话,默认取出来就是你传进去的值。
int age = shared.getInt("age",0);

相信对于聪明的你来说是很简单的推理,就不再列举了。记得最后要进行提交喔!

有兴趣的朋友可以参考上面封装的工具类,来进行一个引导页的运用,即只在第一次打开的时候有引导页,其他时候会直接进入主界面!或者到设置中清除缓存数据,也能重新打开引导页!

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
https://github.com/mlcldh/GNUstepBase

)">
< <上一篇
下一篇>>