它首先是android的数据存储的一种方式。

这种方式应该是用起来最简单的Android读写外部数据的方法了。他的用法基本上和 J2SE(java.util.prefs.Preferences)中的用法一样,以一种简单、透明的方式来保存一些用户个性化设置的字体、颜色、位置等参数信息。一般的应用程序都会提供“设置”或者“首选项”的这样的界面,那么这些设置最后就可以通过Preferences来保存,而程序员不需要知道它到底以什么形式保存的,保存在了什么地方。当然,如果你愿意保存其他的东西,也没有什么限制。只是在性能上不知道会有什么问题。

在Android系统中,这些信息以XML文件的形式保存在 /data/data/PACKAGE_NAME /shared_prefs 目录下。

String PREFS_NAME = "Note.sample.roiding.com"; SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); boolean silent = settings.getBoolean("silentMode", false); String hello = settings.getString("hello", "Hi");

这段代码中:
  • SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
    通过名称,得到一个SharedPreferences,顾名思义,这个Preferences是共享的,共享的范围据现在同一个Package中,这里面说所的Package和Java里面的那个Package不同,貌似这里面的Package是指在AndroidManifest.xml文件中:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.roiding.sample.note" android:versionCode="1" android:versionName="1.0.0">

这里面的package。根据我目前的实验结果看,是这样的,欢迎指正。后面的那个int是用来声明读写模式,先不管那么多了,暂时就知道设为0(android.content.Context.MODE_PRIVATE)就可以了。

  • boolean silent = settings.getBoolean(”silentMode”, false);
    获得一个boolean值,这里就会看到用Preferences的好处了:可以提供一个缺省值。也就是说如果Preference中不存在这个值的话,那么就用后面的值作为返回指,这样就省去了我们的if什么什么为空的判断。

数据写入:

String PREFS_NAME = "Note.sample.roiding.com"; SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("silentMode", true); editor.putString("hello", "Hello~"); editor.commit();

注意:

访问接口和优先修改数据,并由getSharedPreferences(String,int)返回数据,为了统一设置参数,有一个单例类供所有的客户端共享.修改参数必须通过一个SharedPreferences.Editor对象,在存储他们时,以确保参数值有统一的状态和控制
目前此类不支持多线程,

Preferences 是什么呢?相关推荐

  1. XamarinEssentials教程设置首选项Preferences的值

    XamarinEssentials教程设置首选项Preferences的值 如果要对首选项的某一项的值进行设置时,可以通过Preferences类的Set()方法实现,该方法可以对指定键的值进行设置. ...

  2. XamarinEssentials教程首选项Preferences判断项目是否存在

    XamarinEssentials教程首选项Preferences判断项目是否存在 首选项也可以称为偏好设置.它以键值对的形式保存数据,适用于用户少量数据的存储.例如,将用户的个性化设置保存后,每次打 ...

  3. Arduino方式开发ESP32笔记:使用Preferences保存数据

    本文大部分参考使用Arduino开发ESP32(18):使用Preferences保存数据 引出 在其他单片机上我们可以使用单片机自带Flash来保存一些数据,在ESP32上也可以这样,在ESP32的 ...

  4. 自定义SeekBarPreference控件(老外出品,直接在preferences文件中使用,无需其他代码)...

    下面介绍SeekBarPreference控件,保存的Value为数字值,直接可以在preferences.xml文件中使用无需其他代码. 下面是控件使用到得标准Android属性 android:d ...

  5. 0902 - Preferences Permission

    在 iPaste 的外围功能中,今天主要搞定了 Preferences & Permission. Preferences 方面,由于目前主要是静态的功能,于是采用了 UITableViewC ...

  6. Using Preferences(Beginning Android)

    To get access to the preferences, you have three APIs to choose from: • getPreferences() from within ...

  7. Android开发之--Preferences的使用

    2019独角兽企业重金招聘Python工程师标准>>> 在android程序中,记录用户的偏好是个能极大提升用户体验的功能.Android里面的Preferences正式为此事而生. ...

  8. The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]

    使用IDEA遇到的问题:"The server selected protocol version TLS10 is not accepted by client preferences [ ...

  9. eclipse中Preferences的一些设置

    1.在Eclipse里面设置了java文件保存时自动格式化,在java->Code Style->Formatter里设置了自定义的格式化的样式,这样每次保存后都会自动格式化代码,用了一段 ...

  10. Subline Text默认设置文件Preferences.sublime-settings—Default详解

    Subline Text中,点击Preferences,选择Settings - Default 全部属性解析 // While you can edit this file, it's best t ...

最新文章

  1. R语言无序多分类Logistic回归模型实战
  2. 习题元祖与字典的值交换
  3. RichViewEdit的技巧收集
  4. Linux 实例常用内核网络参数介绍与常见问题处理
  5. [LeetCode] Find All Numbers Disappeared in an Array 找出数组中所有消失的数字
  6. md发布test-1 md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-
  7. HDU 4609 FFT
  8. 在 SELECT 查询中使用开窗函数
  9. matlab课堂笔记,厦门大学matlab第四次课程笔记 PTB的简单讲解
  10. php数据库太小要怎么改,PHP入坑之 MySqli对数据库增删改查
  11. 全球气象数据网站(大气、海洋数据应有尽有)
  12. python图像色彩分析_Python——图像手绘效果
  13. umount 无法成功
  14. pip install使用豆瓣库
  15. 【笔记】项目工作中总结(三)
  16. Android 手把手教你实现百度身份证识别
  17. Windows电脑中设置网络优先级的设置方法
  18. 恒生与中国信通院联合发布《证券行业分布式核心系统SRE运维白皮书》
  19. 史上最简萤石云视频显示开发教程(pc端)
  20. End-to-End Learning From Spectrum Data: A DL Approach for Wireless Signal Identification(阅读笔记)

热门文章

  1. python自动点击按钮_python实现按钮自动点击
  2. Google正式收购SketchUp
  3. 在线制图:腾讯云架构在线绘制
  4. 圆点横线圆点 html,目录的点怎么打(目录中小圆点横线上的点要一个个打上去?)...
  5. Temami防辐射服为爱起航
  6. 昨天,终于拿到了腾讯 offer
  7. 【C++】输出公元1900-2100年之间所有闰年的年号,每5个一行
  8. Excel 2010 VBA 入门 058 定时运行程序
  9. 用Egret制作功能简单的打地鼠类游戏《冰桶挑战》
  10. 《心流》| 成年人的友谊,甜蜜与苦涩交杂