• 售前

  • 售后

热门帖子
入门百科

数据存储之共享参数SharedPreferences

[复制链接]
南黑天家 显示全部楼层 发表于 2022-1-12 12:14:21 |阅读模式 打印 上一主题 下一主题
共享参数



共享参数概述

SharedPreferences是Android的一个轻量级存储工具,采用的存储结构还是我们熟悉的Key-Value的键值对结构,类似于java中的Properties,二者都是把Key-Value的键值对保存在配置文件中。不同的是,Properties的文件内容形如Key=Value,而共享参数SharedPreferences的存储介质是一个xml文件,是用xml的标记保存键值对的。保存共享参数键值对信息的文件路径为:/data/data/应用包名/shared_prefs/文件名.xml。
下面展示一些例子:
  1. <?xml version='1.0' encoding="utf-8" standalone='yes' ?>
  2. <map>
  3.     <string name = "name">Bin</string>// 注意字母都是小写的
  4.     <int name="age" value="22"/>
  5.     <boolean name="single" value="true"/>
  6.     <float name="weight" value ="116"/>
  7. </map>
复制代码
共享参数应用场景

基于xml的特点:

  • 简单且孤立的数据。若是复杂且相互关联的数据,则要保存关系数据库。
  • 文本形式的数据,要是二进制数据,则要保存到文件中。
  • 需要持久化存储的数据。App退出后再次启动时,之前保存的数据仍然有效。
实际开发中,共享参数经常存储的数据有:App的个性化配置信息、用户使用App的行为、临时需要保存的片段信息等。
用法如下:
  1. <code>// 从share.xml获取共享参数,第一个参数是文件名,这里share是这个共享参数的文件名,第二个参数是操作的模式,例子中的是私有模式
  2. SharedPreferences sharedPreferences = getSharedPreferences("share",MODE_PRIVATE);
复制代码
我们通常都不会直接的进行一个调用,把它封装成一个共享参数的工具类,更便于我们后面的使用。
  1. public class ToolKits {
  2.     public static SharedPreferences getSharedPreferences(Context context){
  3.         //设置访问模式为此应用私有访问
  4.         return context.getSharedPreferences("com.lcb.myapplication",Context.MODE_PRIVATE);
  5.     }
  6.     public static void putBooble(Context context,String key,Boolean value){
  7.         SharedPreferences sharedPreferences = getSharedPreferences(context);
  8.         SharedPreferences.Editor editor =sharedPreferences.edit();
  9.         editor.putBoolean(key,value);//通过编辑器提交一个布尔值内容
  10.         editor.commit();//编辑器提交内容
  11.     }
  12.     /**
  13.      *
  14.      * @param context
  15.      * @param key
  16.      * @param defaultValue
  17.      * @return 存在值返回对应值,不存在就返回默认值
  18.      */
  19.     public static boolean fetchBooble(Context context,String key,boolean defaultValue){
  20.        return getSharedPreferences(context).getBoolean(key,defaultValue);
  21.     }
复制代码
需要提交什么类型的参数,对应使用编辑器的不同的方法,例如,
  1. <code>editor.putInt("age",30);
  2. editor.putString("name","A bin");
复制代码
获取也是用样的道理,只不过把put前缀改成get前缀,例如,
  1. <code>//第一个参数是key值,第二个参数是一个获取的默认值,就是说,如果里面没有值的话,默认取出来就是你传进去的值。
  2. int age = shared.getInt("age",0);
复制代码
相信对于聪明的你来说是很简单的推理,就不再列举了。记得最后要进行提交喔!
有兴趣的朋友可以参考上面封装的工具类,来进行一个引导页的运用,即只在第一次打开的时候有引导页,其他时候会直接进入主界面!或者到设置中清除缓存数据,也能重新打开引导页!

来源:https://blog.caogenba.net/TG_Lcb/article/details/122442511
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作