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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【python】Windows中编译安装libsamplerate和scikits.samplerate

    【python】Windows中编译安装libsamplerate和scikits.sampleratelibrosa缘由librosa是一个音频和音乐处理的Python包,我用它来做音频的特征提取。但是在使用时,发现librosa.load将音乐文件转化为时间序列的过程中,速度实在难以忍受,cpu跑的非常高,程序好像假死的状态。查阅官方文档发现,默认情况下,librosa会使用scipy.signal进行音频信号的重采样,这在实际使用时是很慢的。如果要获得很高的性能,官方建议安装libsampl

    2022年10月17日
    3
  • 域名怎么与主机空间绑定的_域名绑定虚拟主机

    域名怎么与主机空间绑定的_域名绑定虚拟主机域名怎么与主机空间绑定2008-07-2623:41由于各种原因,我们有时候需要在一个IP地址上建立多个web站点,在IIS中,我们可能通过简单的设置达到这个目标。  在IIS中,每个Web站点都具有唯一的、由三个部分组成的标识,用来接收和响应请求:  1、IP地址  2、端口号  3、主机头名。  在IIS中,在一个IP地址上建立多个独

    2022年10月15日
    2
  • phpstorm破解激活码【在线注册码/序列号/破解码】

    phpstorm破解激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    61
  • C语言之-1与0xffffffff[通俗易懂]

    C语言之-1与0xffffffff[通俗易懂]#include&lt;stdio.h&gt;intmain(){ unsignedintuint; inti=-1; uint=i; printf("%x%d\n",uint,i);//输出ffffffff-1 uint=0xffffffff; i=uint; printf("%x%d\n",uint,i);//输…

    2022年5月17日
    70
  • 虚拟服务器 emule,emule服务器

    虚拟服务器 emule,emule服务器emule服务器内容精选换一换生产站点服务器为SUSE操作系统,对该云服务器创建容灾演练后,发现容灾演练云服务器的网卡名称与生产站点服务器的网卡名称不一致。示例:操作系统为NovellSUSELinuxEnterpriseServer12SP364bit的生产站点服务器,挂载有5张网卡。登录生产站点服务器,查询网卡名称为eth0~eth4,如图1所示。创远程桌面协议(Remote…

    2022年6月15日
    29
  • Oracle 11g 的PL/SQL函数结果缓存

    Oracle 11g 的PL/SQL函数结果缓存

    2022年1月12日
    48

发表回复

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

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