android之SharedPreferences简介[通俗易懂]

SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长整型、Int整型、String字符串型的保存.2个activity 之间的数据传递除了可以通过intent来传递,

大家好,又见面了,我是全栈君。

SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存.

 

用法

2个activity 之间的数据传递除了可以通过intent来传递,还可以使用SharedPreferences来共享数据的方式
SharedPreferences 用法很简单.

在A中设置

Java代码
Editor editor = getSharedPreferences("data", 0).edit();
editor.putString("item","hello getSharedPreferences");
editor.commit();

 

B中获取

Java代码
SharedPreferences sharedata = getSharedPreferences("data", 0);
String item = sharedata.getString("item", null);
Log.v("cola","data="+data);

 

Android数据存取

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

数据读取

Java代码
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文件中:
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什么什么为空的判断。

数据写入

Java代码
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();

有了上面数据读取的代码,这里面的就容易理解了,只是别忘了最后的commit();

注意:

访问接口和优先修改数据,并由getSharedPreferences(String,int)返回数据,为了统一设置参数,有一个单例类供所有的客户端共享。修改参数必须通过一个SharedPreferences.Editor对象,在存储他们时,以确保参数值有统一的状态和控制
目前此类不支持多线程
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121470.html原文链接:https://javaforall.net

(0)
上一篇 2022年3月9日 上午9:00
下一篇 2022年3月9日 上午10:00


相关推荐

  • jquery中的ajax写法_jquery中get和post提交的区别

    jquery中的ajax写法_jquery中get和post提交的区别习惯了用单引号. $(function(){ $(‘#outputuserInfo’).keyup(function(){ varorderid=$(‘#outputuserInfo’).val(); $.ajax({ url:’validateUserInfo’, async:false,//false不打引号 type:’POST

    2026年4月17日
    3
  • java按位异或的运算是,深入理解按位异或运算符

    java按位异或的运算是,深入理解按位异或运算符参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即:0^0=0,1^0=1,0^1=1,1^1=0按位异或的3个特点:(1)0^0=0,0^1=10异或任何数=任何数(2)1^0=1,1^1=01异或任何数-任何数取反(3)任何数异或自己=把自己置0按位异或的几个常见用途:(1)使某些特定的位翻转例如对数10100001的第2位和第3位翻转,则…

    2022年6月6日
    46
  • 中缀表达式转换成前缀表达式和后缀表达式的极其简单方法

    中缀表达式转换成前缀表达式和后缀表达式的极其简单方法35 15 80 70 20 后缀表达方式 35 15 80 70 20 25 中缀表达方式 35 15 80 70 20 前缀表达方式人的思维方式很容易固定 正如习惯了 10 进制 就对 2 3 4 8 16 等进制不知所措一样 人们习

    2026年3月19日
    3
  • 施密特正交化几何解释

    施密特正交化几何解释施密特正交化几何解释

    2022年4月24日
    63
  • 大篆汉字对照表_甲骨文汉字对照表大全_甲骨文数字象形字对照图

    几个汉字演变过程(从甲骨文到行书)甲骨文:出现于商代,刻写在龟甲骨上的文字,主要用于占卜,也用于记事。甲骨文被认为是“汉字”的第一种形式,它既是象形字又是表音字,至今汉字中仍有一些和图画一样的象形文字。金文:始于夏商,古代刻在青铜的钟鼎和石鼓上的文字,是商代书写使用的正体,与甲骨文并行使用,具有正体多繁,俗体趋简的特点。大篆:到了西周后期,汉字发展演变为大篆。大篆有两个特点:线条化和规范化,粗细不…

    2022年4月6日
    339
  • asp在php空间上显示不正常,国外空间乱码显示问题的解决

    asp在php空间上显示不正常,国外空间乱码显示问题的解决国外空间安装时乱码怎么办 好不容易找到了一个免费的空间 可是把网页放上去一看一些乱码 是不是很上火呢 不过看了这篇文章之后就不用上火了 我们有解决办法 下面咱们来了解下吧 在数据提取页面的第一行代码换成如下代码即可 language vbscriptcode 936 1 若是 html 文件 htm html 在 head head 中加上 metahttp equiv

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号