android开发课件:数据访问-SP_第1页
android开发课件:数据访问-SP_第2页
android开发课件:数据访问-SP_第3页
android开发课件:数据访问-SP_第4页
android开发课件:数据访问-SP_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android数据访问-SPOutlinesSharedPreferences介绍特点本地访问访问其它程序的SP访问PreferenceFragment的使用什么是SharedPreferencesSharedPreferences(SP)是Android平台上一个轻量级的存储类,常用于存储较简单的参数设置。它提供了Android平台常规的Long、Int、String、float、Boolean等几种类型的保存。例如:保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState,保存时一般使用SharedPreferences完成。

例如:可以通过它保存上一次用户所作的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置。SP目前不支持多进程的访问。SharedPreferences特点通过SP可以将NVP(Name/ValuePair,名称/值对)保存在Android的文件系统中,以XMl文件形式保存,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。Android为每个应用程序建立了与包同名的目录,用来保存应用程序产生的数据,这些数据包括文件、SharedPreferences文件和数据库等。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。存储路径SharedPreferences介绍特点本地访问其它程序对sp的访问PreferenceFragment的使用简单例子获得SP实例SP的编辑SP的读取实现步骤获取SharedPreferences对象利用SP对象,获取Editor对象。通过Editor对象存储或获取key-value键值对数据。putString/putInt/putFloat/putLong/putBoolean

getString/getInt/getFloat/getLong/getBoolean

如果是存储数据,还需要通过commit()方法提交数据。获取SP-访问模式用getSharedPreferences(Stringname,intmode)函数获得sp实例时,第一个参数是XML文件名,第二个参数是访问模式。SharedPreferences支持三种访问模式私有(MODE_PRIVATE):仅有创建程序有权限对其进行读取或写入全局读(MODE_WORLD_READABLE):不仅创建程序可以对其进行读取或写入,其他应用程序也读取操作的权限,但没有写入操作的权限全局写(MODE_WORLD_WRITEABLE):创建程序和其他程序都可以对其进行写入操作,但没有读取的权限有的时候需要将SharedPreferences的访问模式设定为即可以全局读,也可以全局写,这样就需要将两种模式写成下面的方式publicstaticintMODE=Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLEAndroid中文件访问权限:见下页在Linux系统中,文件权限分别描述了创建者、同组用户和其他用户对文件的操作限制。x表示可执行,r表示可读,w表示可写,d表示目录,-表示普通文件。因此,“-rw-rw-rw”表示文件可以被创建者、同组用户和其他用户进行读取和写入操作,但不可执行。产生这样的文件权限与程序人员设定的SharedPreferences的访问模式有关,”-rw-rw-rw”的权限是“全局读+全局写”的结果。如果将SharedPreferences的访问模式设置为私有,则文件权限将成为“-rw-rw---”,表示仅有创建者和同组用户具有读写文件的权限获取SP-XML文件导出XML文件查看XML文件在eclipse的FileExplorer页面,点击右上角的一个保存到电脑的按钮,可以将生成mysp.xml保存到pc机上,从而查看mysp.xml文件的内容以下是mysp.xml文件的内容读取SP内容利用SP的getString/getBoolean/getInt等函数,可以获得XML中的相关内容。getXXX函数的第一个参数是putXXX函数中存放的KEY值,第二个参数是默认的返回值:即如果getXXX无法找到对应的KEY值,则返回默认值。SharedPreferences介绍特点本地访问其它程序对sp的访问PreferenceFragment的使用访问其它程序的SP在创建一个SharedPreferences的时候,如果需要让别的应用程序也能访问到本程序的SharedPreferences,则在创建的时候指定MODE_WORLD_READABLE或MODE_WORLD_WRITEABLE就可以了。在其他程序访问的时候,只要能获取到创建的程序的Context就可以访问了。具体步骤需要创建其他程序对应的Context。使用Context.createPackageContext(StringpackageName,intflags)。Context.createPackageContext(StringpackageName,intflags):根据包的名称,返回此包的Context。通过flags控制安全性:可选值:CONTEXT_INCLUDE_CODE或CONTEXT_IGNORE_SECURITY(常用)调用其他应用程序的Context的getSharedPerferences即可获取相应的SharedPreferences对象。其他操作与操作本地的SharedPreferences一致。访问其他程序sp的条件访问其他应用程序的SharedPreferences必须满足三个条件共享者需要将SharedPreferences的访问模式设置为全局读或全局写访问者需要知道共享者的包名称和SharedPreferences的名称,以通过Context获得SharedPreferences对象访问者需要确切知道每个数据的名称和数据类型,用以正确读取数据案例publicstaticfinalStringPREFERENCE_PACKAGE="edu.hznu.dataacess";publicstaticfinalStringPREFERENCE_NAME=“mysp";publicstaticintMODE=Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE;

publicvoidonCreate(BundlesavedInstanceState){ Contextc=null; try{ c=createPackageContext(PREFERENCE_PACKAGE,Context.CONTEXT_IGNORE_SECURITY); }catch(NameNotFoundExceptione){

e.printStackTrace(); }

SharedPreferences

sharedPreferences=c.getSharedPreferences(PREFERENCE_NAME,MODE);Stringname=sharedPreferences.getString("Name","Tom"); intage=sharedPreferences.getInt("Age",20); floatheight=sharedPreferences.getFloat("Height",);}表示忽略所有可能产生的安全问题。这段代码可能引发异常,因此必须防止在try/catch中SharedPreferences介绍特点本地访问其它程序对sp的访问PreferenceFragment的使用注意:Preference指的是首选项的一些配置。PreferenceFragment(PF)简介用perference键值对的方式来处理,在android3.0之前,我们一般去继承Preference这个基类去给用户呈现一个可以设置的界面,其中的layout需要自己编写,Android3.0之后,则可以使用Fragment的首选项配置方法,即使用PreferenceFragement来实现。使用PF时,首选项将会遵循系统首选项的视觉风格,并通过使用XML文件来创建各个首选项的视图层级。我们可以直接通过加载XML文件来显示首选项的UI。示例界面定义在XML文件首选项页面的UI定义简单的说,首选项页面定义在一个XML文件中。你可以首先在res->xml中添加一个xml文件。右键选择new->other->androidxmlfile.在弹出的NewAndroidXMLfile的ResourceType下拉框中,选择Preference.在根目录(RootElement)选项中,选择PreferenceScreen。与传统SP一样的存储。。与传统SP一样,PF也存储在data/data/package_name目录中。但是每个Preferencece存储在相对应下的SharedPreference文件夹下。一个PreferenceScreen对象应该在首选项层级的顶部。此外,随后在层次结构PreferenceScreen表示一个屏幕分割处——就是包含随后的PreferenceScreen应显示在另一个屏幕页面上首选项中的分栏在preferencexml中,使用<PreferenceScreen>表示分屏,使用<PreferenceCategory>表示分栏。在preferencexml中,有一些表示UI“控件”的条目。CheckBoxPreference:勾选框,同CheckBoxSwitchPreference:同Switch控件ListPreference:同ListViewPreference:类似于TextView下面,我们对比Preference和View下得各个子控件,对他们的家庭元素在宏观上有个更好的把握性。通用XML属性说明属性说明android:key每个Preference控件独一无二的”ID”,唯一表示此Preference。非常重要!android:defaultValue默认值。例如,CheckBoxPreference的默认值可为”true”,默认为选中状态android:title每个Preference在PreferenceScreen布局上显示的标题——大标题android:summary每个Preference在PreferenceScreen布局上显示的标题——小标题(可以没有)android:persistent表示Preference元素所对应的值是否写入sharedPreferen文件中,如果是true,则表示写例子ListPreference…Preference加载“首选项”页面首先,如上所示,以XML文件定义一个UI页面。然后,定义一个继承自PreferenceFragment类的首选项类,并实现页面的点击事件、选项改变等事件接口,如下所示:在SettingFragment类的OnCreate事件中,利用函数addPreferencesFromResource加载XML文件。假设XML文件名为preference.xml加载方式为:addPreferencesFromResourc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论