




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Android數(shù)據(jù)訪問-SPOutlinesSharedPreferences介紹特點(diǎn)本地訪問訪問其它程序的SP訪問PreferenceFragment的使用什么是SharedPreferencesSharedPreferences(SP)是Android平臺上一個(gè)輕量級的存儲類,常用于存儲較簡單的參數(shù)設(shè)置。它提供了Android平臺常規(guī)的Long、Int、String、float、Boolean等幾種類型的保存。例如:保存一些常用的配置比如窗口狀態(tài),一般在Activity中重載窗口狀態(tài)onSaveInstanceState,保存時(shí)一般使用SharedPreferences完成。
例如:可以通過它保存上一次用戶所作的修改或者自定義參數(shù)設(shè)定,當(dāng)再次啟動程序后依然保持原有的設(shè)置。SP目前不支持多進(jìn)程的訪問。SharedPreferences特點(diǎn)通過SP可以將NVP(Name/ValuePair,名稱/值對)保存在Android的文件系統(tǒng)中,以XMl文件形式保存,它的本質(zhì)是基于XML文件存儲key-value鍵值對數(shù)據(jù),通常用來存儲一些簡單的配置信息。其存儲位置在/data/data/<包名>/shared_prefs目錄下。Android為每個(gè)應(yīng)用程序建立了與包同名的目錄,用來保存應(yīng)用程序產(chǎn)生的數(shù)據(jù),這些數(shù)據(jù)包括文件、SharedPreferences文件和數(shù)據(jù)庫等。SharedPreferences對象本身只能獲取數(shù)據(jù)而不支持存儲和修改,存儲修改是通過Editor對象實(shí)現(xiàn)。存儲路徑SharedPreferences介紹特點(diǎn)本地訪問其它程序?qū)p的訪問PreferenceFragment的使用簡單例子獲得SP實(shí)例SP的編輯SP的讀取實(shí)現(xiàn)步驟獲取SharedPreferences對象利用SP對象,獲取Editor對象。通過Editor對象存儲或獲取key-value鍵值對數(shù)據(jù)。putString/putInt/putFloat/putLong/putBoolean
getString/getInt/getFloat/getLong/getBoolean
如果是存儲數(shù)據(jù),還需要通過commit()方法提交數(shù)據(jù)。獲取SP-訪問模式用getSharedPreferences(Stringname,intmode)函數(shù)獲得sp實(shí)例時(shí),第一個(gè)參數(shù)是XML文件名,第二個(gè)參數(shù)是訪問模式。SharedPreferences支持三種訪問模式私有(MODE_PRIVATE):僅有創(chuàng)建程序有權(quán)限對其進(jìn)行讀取或?qū)懭肴肿x(MODE_WORLD_READABLE):不僅創(chuàng)建程序可以對其進(jìn)行讀取或?qū)懭耄渌麘?yīng)用程序也讀取操作的權(quán)限,但沒有寫入操作的權(quán)限全局寫(MODE_WORLD_WRITEABLE):創(chuàng)建程序和其他程序都可以對其進(jìn)行寫入操作,但沒有讀取的權(quán)限有的時(shí)候需要將SharedPreferences的訪問模式設(shè)定為即可以全局讀,也可以全局寫,這樣就需要將兩種模式寫成下面的方式publicstaticintMODE=Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLEAndroid中文件訪問權(quán)限:見下頁在Linux系統(tǒng)中,文件權(quán)限分別描述了創(chuàng)建者、同組用戶和其他用戶對文件的操作限制。x表示可執(zhí)行,r表示可讀,w表示可寫,d表示目錄,-表示普通文件。因此,“-rw-rw-rw”表示文件可以被創(chuàng)建者、同組用戶和其他用戶進(jìn)行讀取和寫入操作,但不可執(zhí)行。產(chǎn)生這樣的文件權(quán)限與程序人員設(shè)定的SharedPreferences的訪問模式有關(guān),”-rw-rw-rw”的權(quán)限是“全局讀+全局寫”的結(jié)果。如果將SharedPreferences的訪問模式設(shè)置為私有,則文件權(quán)限將成為“-rw-rw---”,表示僅有創(chuàng)建者和同組用戶具有讀寫文件的權(quán)限獲取SP-XML文件導(dǎo)出XML文件查看XML文件在eclipse的FileExplorer頁面,點(diǎn)擊右上角的一個(gè)保存到電腦的按鈕,可以將生成mysp.xml保存到pc機(jī)上,從而查看mysp.xml文件的內(nèi)容以下是mysp.xml文件的內(nèi)容讀取SP內(nèi)容利用SP的getString/getBoolean/getInt等函數(shù),可以獲得XML中的相關(guān)內(nèi)容。getXXX函數(shù)的第一個(gè)參數(shù)是putXXX函數(shù)中存放的KEY值,第二個(gè)參數(shù)是默認(rèn)的返回值:即如果getXXX無法找到對應(yīng)的KEY值,則返回默認(rèn)值。SharedPreferences介紹特點(diǎn)本地訪問其它程序?qū)p的訪問PreferenceFragment的使用訪問其它程序的SP在創(chuàng)建一個(gè)SharedPreferences的時(shí)候,如果需要讓別的應(yīng)用程序也能訪問到本程序的SharedPreferences,則在創(chuàng)建的時(shí)候指定MODE_WORLD_READABLE或MODE_WORLD_WRITEABLE就可以了。在其他程序訪問的時(shí)候,只要能獲取到創(chuàng)建的程序的Context就可以訪問了。具體步驟需要創(chuàng)建其他程序?qū)?yīng)的Context。使用Context.createPackageContext(StringpackageName,intflags)。Context.createPackageContext(StringpackageName,intflags):根據(jù)包的名稱,返回此包的Context。通過flags控制安全性:可選值:CONTEXT_INCLUDE_CODE或CONTEXT_IGNORE_SECURITY(常用)調(diào)用其他應(yīng)用程序的Context的getSharedPerferences即可獲取相應(yīng)的SharedPreferences對象。其他操作與操作本地的SharedPreferences一致。訪問其他程序sp的條件訪問其他應(yīng)用程序的SharedPreferences必須滿足三個(gè)條件共享者需要將SharedPreferences的訪問模式設(shè)置為全局讀或全局寫訪問者需要知道共享者的包名稱和SharedPreferences的名稱,以通過Context獲得SharedPreferences對象訪問者需要確切知道每個(gè)數(shù)據(jù)的名稱和數(shù)據(jù)類型,用以正確讀取數(shù)據(jù)案例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",);}表示忽略所有可能產(chǎn)生的安全問題。這段代碼可能引發(fā)異常,因此必須防止在try/catch中SharedPreferences介紹特點(diǎn)本地訪問其它程序?qū)p的訪問PreferenceFragment的使用注意:Preference指的是首選項(xiàng)的一些配置。PreferenceFragment(PF)簡介用perference鍵值對的方式來處理,在android3.0之前,我們一般去繼承Preference這個(gè)基類去給用戶呈現(xiàn)一個(gè)可以設(shè)置的界面,其中的layout需要自己編寫,Android3.0之后,則可以使用Fragment的首選項(xiàng)配置方法,即使用PreferenceFragement來實(shí)現(xiàn)。使用PF時(shí),首選項(xiàng)將會遵循系統(tǒng)首選項(xiàng)的視覺風(fēng)格,并通過使用XML文件來創(chuàng)建各個(gè)首選項(xiàng)的視圖層級。我們可以直接通過加載XML文件來顯示首選項(xiàng)的UI。示例界面定義在XML文件首選項(xiàng)頁面的UI定義簡單的說,首選項(xiàng)頁面定義在一個(gè)XML文件中。你可以首先在res->xml中添加一個(gè)xml文件。右鍵選擇new->other->androidxmlfile.在彈出的NewAndroidXMLfile的ResourceType下拉框中,選擇Preference.在根目錄(RootElement)選項(xiàng)中,選擇PreferenceScreen。與傳統(tǒng)SP一樣的存儲。。與傳統(tǒng)SP一樣,PF也存儲在data/data/package_name目錄中。但是每個(gè)Preferencece存儲在相對應(yīng)下的SharedPreference文件夾下。一個(gè)PreferenceScreen對象應(yīng)該在首選項(xiàng)層級的頂部。此外,隨后在層次結(jié)構(gòu)PreferenceScreen表示一個(gè)屏幕分割處——就是包含隨后的PreferenceScreen應(yīng)顯示在另一個(gè)屏幕頁面上首選項(xiàng)中的分欄在preferencexml中,使用<PreferenceScreen>表示分屏,使用<PreferenceCategory>表示分欄。在preferencexml中,有一些表示UI“控件”的條目。CheckBoxPreference:勾選框,同CheckBoxSwitchPreference:同Switch控件ListPreference:同ListViewPreference:類似于TextView下面,我們對比Preference和View下得各個(gè)子控件,對他們的家庭元素在宏觀上有個(gè)更好的把握性。通用XML屬性說明屬性說明android:key每個(gè)Preference控件獨(dú)一無二的”ID”,唯一表示此Preference。非常重要!android:defaultValue默認(rèn)值。例如,CheckBoxPreference的默認(rèn)值可為”true”,默認(rèn)為選中狀態(tài)android:title每個(gè)Preference在PreferenceScreen布局上顯示的標(biāo)題——大標(biāo)題android:summary每個(gè)Preference在PreferenceScreen布局上顯示的標(biāo)題——小標(biāo)題(可以沒有)android:persistent表示Preference元素所對應(yīng)的值是否寫入sharedPreferen文件中,如果是true,則表示寫例子ListPreference…Preference加載“首選項(xiàng)”頁面首先,如上所示,以XML文件定義一個(gè)UI頁面。然后,定義一個(gè)繼承自PreferenceFragment類的首選項(xiàng)類,并實(shí)現(xiàn)頁面的點(diǎn)擊事件、選項(xiàng)改變等事件接口,如下所示:在SettingFragment類的OnCreate事件中,利用函數(shù)addPreferencesFromResource加載XML文件。假設(shè)XML文件名為preference.xml加載方式為:addPreferencesFromResourc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專項(xiàng)10 文學(xué)常識(試卷版)
- 2025屆江蘇省鹽城市射陽中學(xué)高三上學(xué)期一模物理試題(解析版)
- 2025屆四川省資陽市安岳中學(xué)高三二模語文試題(原卷版+解析版)
- 人教版九年級下冊化學(xué)教學(xué)工作計(jì)劃(含進(jìn)度表)
- 《跨境電子商務(wù)法律法規(guī) 》全套教學(xué)課件
- 廣東省廣州市華南師范附屬中學(xué)2024-2025學(xué)年高二下學(xué)期3月月考物理試卷(原卷版+解析版)
- 教育咨詢居間協(xié)議樣本
- 汽車車身電子控制技術(shù)指南
- 中醫(yī)護(hù)理學(xué)(第5版)課件 第三節(jié) 中藥煎服法與護(hù)理
- 雨水收集再利用系統(tǒng)
- 2023年 新版評審準(zhǔn)則質(zhì)量記錄手冊表格匯編
- 2024年全國版圖知識競賽(小學(xué)組)考試題庫大全(含答案)
- 博物館保安服務(wù)投標(biāo)方案(技術(shù)方案)
- (高清版)TDT 1047-2016 土地整治重大項(xiàng)目實(shí)施方案編制規(guī)程
- 2024年新疆維吾爾自治區(qū)中考一模綜合道德與法治試題
- 醫(yī)藥代表專業(yè)化拜訪技巧培訓(xùn)
- 今年夏天二部合唱譜
- 現(xiàn)代制造技術(shù)課件
- 小米公司招聘測試題目
- 2024年北京控股集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 人教版二年級數(shù)學(xué)下冊 3 圖形的運(yùn)動(一)1.軸對稱圖形(教學(xué)課件)
評論
0/150
提交評論