Android开发之SharedPreferences

1、使用SharedPreferences进行数据存储

Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下。

使用SharedPreferences保存一个文件并写入内容如下:

SharedPreferences sharedPreferences = getSharedPreferences("test", Context.MODE_PRIVATE);

Editor editor = sharedPreferences.edit();//获取编辑器

editor.putString("name", "姓名");

editor.putInt("age", 4);

editor.commit();//提交修改

生成的test.xml文件内容如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>

<map>

<string name="name">姓名</string>

<int name="age" value="4" />

</map>

2、访问SharedPreferences中的数据

访问SharedPreferences中的数据代码如下:

SharedPreferences sharedPreferences = getSharedPreferences("test", Context.MODE_PRIVATE);

//getString()第二个参数为缺省值,如果preference中不存在该key,将返回缺省值

String name = sharedPreferences.getString("name", "");

int age = sharedPreferences.getInt("age", 1);

如果访问其他应用中的Preference,前提条件是:

该preference创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE权限。

如:有个<package name>为cn.test.action的应用使用下面语句创建了preference。

getSharedPreferences("test", Context.MODE_WORLD_READABLE);

其他应用要访问上面应用的preference,首先需要创建上面应用的Context,然后通过Context 访问preference ,访问preference时会在应用所在包下的shared_prefs目录找到preference :

Context otherAppsContext =

createPackageContext("cn.test.action",Context.CONTEXT_IGNORE_SECURITY);

 

SharedPreferences sharedPreferences =

otherAppsContext.getSharedPreferences("test", Context.MODE_WORLD_READABLE);

 

String name = sharedPreferences.getString("name", "");

int age = sharedPreferences.getInt("age", 0);

如果不通过创建Context访问其他应用的preference,也可以以读取xml文件方式直接访问其他应用preference对应的xml文件,如:

File xmlFile =

new File(“/data/data/<package name>/shared_prefs/test.xml”);

<package name>应替换成应用的包名

时间: 2024-08-31 08:32:19

Android开发之SharedPreferences的相关文章

消息推送的问题-Android开发之bmob消息推送

问题描述 Android开发之bmob消息推送 bmob实现消息推送时,部分手机收不到什么鬼?不论是指定或是发送所有手机. 解决方案 你检查过那些手机是否有网络吗? 解决方案二: 看看官文文档 介绍 或者换极光推动 或者 友盟的推送 解决方案三: 只是个别手机有问题,说明通道应该没问题,检查手机环境,或者联系服务商咨询

Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果_Android

BottomBar BottomBar是Github上的一个开源框架,因为从1.3.3开始不支持fragments了,要自己配置,弄了很久,不管是app的fragment还是V4 的程序总是总是闪退.于是就用这种方式实现了,效果还不错.github有详细说明,多余的就不说了. 这个roughike是这个项目的所有者(大神致敬). 我用的是Android studio开发,fragment全部导的V4的包(以为最开始就支持的是v4的,后面也支持了app.fragment). 首先是dependen

Android开发之ViewSwitcher用法实例_Android

本文实例讲述了Android开发之ViewSwitcher用法.分享给大家供大家参考,具体如下: android.widget.ViewSwitcher是ViewAnimator的子类,用于在两个View之间切换,但每次只能显示一个View. ViewSwitcher的addView函数的代码如下: /** * {@inheritDoc} * * @throws IllegalStateException if this switcher already contains two childre

Android开发之Animations动画用法实例详解_Android

本文实例讲述了Android开发之Animations动画用法.分享给大家供大家参考,具体如下: 一.动画类型 Android的animation由四种类型组成:alpha.scale.translate.rotate XML配置文件中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 Java Code代码中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸

Android开发之旅:android架构

引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWorld Android 开发之旅:HelloWorld项目的目录结构 我 们对android有了个大致的了解,知道如何搭建android的环境及简单地写一个HelloWorld程序,而且知道一个android项目包括哪 些文件夹和文件及相应的作用.本篇将站在顶级的高度--架构,来看android.我开篇就说了,这个系列适合0基础的人且我也是从0开始按照这个步骤来 学的,谈架构是不是有点螳臂挡车,自不量力呢?我觉得其实不然,如

Android开发之旅:应用程序基础及组件

--成功属于耐得住寂寞的人,接下来几篇将讲述Android应用程序的原理及术语,可能会比较枯燥.如果能够静下心来看,相信成功将属于你. 引言 为了后面的例子做准备,本篇及接下来几篇将介绍Android应用程序的原理及术语,这些也是作为一个Android的开发人员必须要了解,且深刻理解的东西.本篇的主题如下: 1.应用程序基础 2.应用程序组件 2.1.活动(Activities) 2.2.服务(Services) 2.3.广播接收者(Broadcast receivers) 2.4.内容提供者(

Android 开发之旅:短信的收发及在android模拟器之间实践(二)

引言 前面我们介绍都只是如何发送SMS消息,接下来我们介绍如何接收SMS消息,及另一种发短信的方式并增强为可以发生图片等,最后介绍一下emulator工具.本文的主要内容如下: 1~5见Android 开发之旅:短信的收发及在android模拟器之间实践(一) 6.温故知新之Intent 7.准备工作:SmsMessage类 8.SMS接收程序 9.另一种发送短信的方式:使用Intent 10.增强SMS为MMS 6.温故知新之Intent 此系列前面简单地接受过意图(Intent),这里再次简

Android 开发之旅:view的几种布局方式及实践

引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是"Hello World!" 我们对Android应用程序运行原理及布局文件可谓有了比较深刻的认识和理解,并且用"Hello World!"程序来实践证明了.在继续深入Android开发之旅之前,有必要解决前两篇中没有介绍的遗留问题:View的几种布局显示方法,以后就不会在针对布局方面做过多的介绍.View的布局显示方式有下面几种:线

Android开发之旅: Intents和Intent Filters(理论部分)

引言 大部分移动设备平台上的应用程序都运行在他们自己的沙盒中.他们彼此之间互相隔离, 并且严格限制应用程序与硬件和原始组件之间的交互. 我们知道交流是多么的重要,作为一个孤岛没有交流的东西,一定毫无意义!Android应用程序也是一个沙盒,但是他们能够使用Intent. Broadcast Receivers.Adapters.Content Providers.Internet去突破他们的边界互相交流.有交流还会和谐,由此可见这些交流手段有多重要. 上篇文章中我们在 SMS接收程序和使用Int