数据存储之共享参数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的特点:
- 简单且孤立的数据。若是复杂且相互关联的数据,则要保存关系数据库。
- 文本形式的数据,要是二进制数据,则要保存到文件中。
- 需要持久化存储的数据。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 )">