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对象,在存储他们时,以确保参数值有统一的状态和控制
目前此类不支持多线程
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 25种提高网页加载速度的方法和技巧

    25种提高网页加载速度的方法和技巧

  • JAVA常见数据结构

    JAVA常见数据结构常见的的数据结构数据存储的常⽤结构有:栈、队列、数组、链表和红⿊树。栈栈:stack,⼜称堆栈,它是运算受限的线性表,其限制是仅允许在标的⼀端进⾏插⼊和删除操作,不允许在其他任何位置进⾏添加、查找、删除等操作。简单的说:采⽤该结构的集合,对元素的存取有如下的特点1.先进后出(即,存进去的元素,要在后它后⾯的元素依次取出后,才能取出该元素)。例如,⼦弹压进弹夹,先压进去的⼦弹在下⾯,后压进去的⼦弹在上⾯,当开枪时,先弹出上⾯的⼦弹,然后才能弹出下⾯的⼦弹。2.栈的⼊⼝、出⼝的都是栈的顶端位置。

  • 发布小工具:Ip一键切换V1.0「建议收藏」

    发布小工具:Ip一键切换V1.0「建议收藏」你还在手动修改Ip么?IP地址一键切换,你经历过么?Download一个试试吧。本工具用批处理实现,无需安装,绿色安全。

  • Java算法——判断素数[通俗易懂]

    Java算法——判断素数[通俗易懂]Java算法——判断素数,供自己学习方便和初学者参考! publicstaticbooleanisPrimeNumber(intnumber){if(number<2){returnfalse;}for(i

  • linux load average,理解Linux中的Load Average

    linux load average,理解Linux中的Load Average在Linux系统中,使用下面的命令:topwuptime(以上三个命令各有区别,top是以固定间隔显示进程的资源占用排名,w显示whoandwhattheyaredoing,uptime就顾名思义)都可以看到一个loadaverage,里面有三个值,如下图:Linux中的LoadAverage第一位0.11:表示最近1分钟平均负载第二位0.10:表示最近5分钟平均负载第三位0.05:…

  • visual studio发生了未处理的异常_灾难性故障0x8000ffff

    visual studio发生了未处理的异常_灾难性故障0x8000ffff故障说明:使用vs2010时,由于文件创建MFC类时,移除文件后重新创建正确的基类,覆盖之前创建的文件造成,在“解决方案资源管理器”点击“cpp”文件弹出该提示。解决方法:在“解决方案资源管理器”,重命名cpp文件,双击打开后,改回原名即可。

发表回复

您的电子邮箱地址不会被公开。

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