91xxx-91xxxxx-大陆av在线-大陆明星乱淫(高h)小说-黄色三级三级-黄色三级三级三级三级-免费在线观看a视频-免费在线观看www-日韩电影网站-日韩电影网址-香港三级日本三级韩国三级-香港三级网站-中国黄色一级大片-中国黄色一级毛片-无码国产精品免费看-久久精品国产自在天天线

歡迎來(lái)到酷云建站平臺(tái),全網(wǎng)營(yíng)銷(xiāo)云系統(tǒng)加盟中心!

海量企業(yè)網(wǎng)站模板 · 任您選擇

美出特色,精出品質(zhì),一切為了企業(yè)更好的營(yíng)銷(xiāo)

隱藏側(cè)欄
Beta
轉(zhuǎn)載

如何使用shared preferences來(lái)實(shí)現(xiàn)輕量級(jí)數(shù)據(jù)存儲(chǔ)?

       APP開(kāi)發(fā)     2021-12-16     admin     13     0    

現(xiàn)在,取代硬編碼搜索字符串,徐州APP開(kāi)發(fā)公司-酷優(yōu)網(wǎng)絡(luò)教你來(lái)實(shí)現(xiàn)用戶(hù)在SearchView中輸入并提交的查詢(xún)指令。在PhotoGallery應(yīng)用中,一次只有一個(gè)激活的查詢(xún)。應(yīng)用應(yīng)該保存這個(gè)查詢(xún),即使應(yīng)用或設(shè)備重啟也不會(huì)丟失。要實(shí)現(xiàn)這個(gè)目標(biāo),可以把查詢(xún)字符串寫(xiě)入shared preferences。只要用戶(hù)提交查詢(xún),就把它寫(xiě)入shared preferences,覆蓋掉之前保持的字符串。實(shí)際搜索Flickr時(shí),就從sharedpreferences中取出查詢(xún)字符串,把它作為text參數(shù)值。

shared preferences本質(zhì)上就是文件系統(tǒng)中的文件,可使用SharedPreferences類(lèi)讀寫(xiě)它。SharedPreferences實(shí)例用起來(lái)更像一個(gè)鍵值對(duì)倉(cāng)庫(kù)(類(lèi)似于Bundle),但它可以通過(guò)持久化存儲(chǔ)保存數(shù)據(jù)。鍵值對(duì)中的鍵為字符串,而值是原子數(shù)據(jù)類(lèi)型。進(jìn)一步查看shared preferences文件可知,它們實(shí)際上是一種簡(jiǎn)單的XML文件,但SharedPreferences類(lèi)已屏蔽了讀寫(xiě)文件的實(shí)現(xiàn)細(xì)節(jié)。shared preferences文件保存在應(yīng)用沙盒中,所以,類(lèi)似密碼這樣的敏感信息不應(yīng)該用它來(lái)保存。

要獲得定制的SharedPreferences 實(shí)例, 可使用Context.getSharedPreferences (String,int)方法。然而,在實(shí)際開(kāi)發(fā)中,我們并不關(guān)心具體是什么樣的SharedPreferences實(shí)例,只要它能共享于整個(gè)應(yīng)用就可以了。這種情況下,最好使用PreferenceManager.getDefaultSharedPreferences(Context)方法,該方法會(huì)返回具有私有權(quán)限和默認(rèn)名稱(chēng)的實(shí)例(僅在當(dāng)前應(yīng)用內(nèi)可用)。

如下圖代碼清單所示,添加一個(gè)名為QueryPreferences的新類(lèi),用于讀取和寫(xiě)入查詢(xún)字符串。

添加一個(gè)名為QueryPreferences的新類(lèi)

PREF_SEARCH_QUERY用作查詢(xún)字符串的存儲(chǔ)key,讀取和寫(xiě)入時(shí)都要用到它。

getStoredQuery(Context)方法返回shared preferences中保存的查詢(xún)字符串值。不過(guò),它首先要找到指定context 中的默認(rèn)SharedPreferences 。( QueryPreferences 類(lèi)沒(méi)有自己的Context,所以該方法的調(diào)用者必須傳入一個(gè)。)

取出查詢(xún)字符串值非常簡(jiǎn)單,調(diào)用SharedPreferences.getString(...)就可以了。如果是其他類(lèi)型數(shù)據(jù),就調(diào)用對(duì)應(yīng)的取值方法,比如getInt(...),SharedPreferences.getString (PREF_SEARCH_QUERY, null)方法的第二個(gè)參數(shù)指定默認(rèn)返回值;如果找不到PREF_SEARCH_QUERY對(duì)應(yīng)的值,就返回null值。

setStoredQuery(Context)方法向指定context的默認(rèn)shared preferences寫(xiě)入查詢(xún)輸入值。在以上代碼中,調(diào)用SharedPreferences.edit()方法,可獲取一個(gè)SharedPreferences.Editor實(shí)例。它就是在SharedPreferences中保存查詢(xún)信息要用到的類(lèi)。與FragmentTransaction的

使用類(lèi)似,利用SharedPreferences.Editor,可將一組數(shù)據(jù)操作放入一個(gè)事務(wù)中。如有一批數(shù)據(jù)要更新,在一個(gè)事務(wù)中進(jìn)行批量數(shù)據(jù)存儲(chǔ)寫(xiě)入操作就可以了。

完成所有數(shù)據(jù)的變更準(zhǔn)備后,調(diào)用SharedPreferences.Editor的apply()異步方法寫(xiě)入數(shù)據(jù)。這樣,該SharedPreferences文件的其他用戶(hù)就能看到寫(xiě)入的數(shù)據(jù)了。apply()方法首先在內(nèi)存中執(zhí)行數(shù)據(jù)變更,然后在后臺(tái)線程上真正把數(shù)據(jù)寫(xiě)入文件。

QueryPreferences是PhotoGallery應(yīng)用的數(shù)據(jù)存儲(chǔ)引擎。既然已經(jīng)搞定了查詢(xún)信息的讀取和寫(xiě)入方法,現(xiàn)在就來(lái)在PhotoGalleryFragment中應(yīng)用它們。

首先是保存用戶(hù)提交的查詢(xún)信息,如下圖代碼所示。

保存用戶(hù)提交的查詢(xún)信息

接下來(lái),在用戶(hù)從溢出菜單選擇Clear Search選項(xiàng)時(shí)清除存儲(chǔ)的查詢(xún)信息(設(shè)置為null),如下圖代碼所示。

在用戶(hù)從溢出菜單選擇Clear Search選項(xiàng)時(shí)清除存儲(chǔ)的查詢(xún)信息(設(shè)置為null)

發(fā)現(xiàn)沒(méi)有?和第二張圖片代碼中的做法一樣,更新完查詢(xún)信息,updateItems()方法會(huì)被調(diào)用。這很有必要,可以確保RecyclerView中顯示最新的搜素結(jié)果。

最后,別忘了更新FetchItemsTask,來(lái)使用保存的查詢(xún)字符串(終于可以不用硬編碼字符串了)。在FetchItemsTask中添加一個(gè)定制版構(gòu)造方法,用于接收查詢(xún)信息并保存在一個(gè)成員變量中備用。更新updateItems()方法,從shared preferences中取出保存的查詢(xún)信息,用它創(chuàng)建一個(gè)FetchItemsTask新實(shí)例,如下圖代碼所示。

更新FetchItemsTask,來(lái)使用保存的查詢(xún)字符串

搜索功能現(xiàn)在應(yīng)該可以正常使用了。運(yùn)行PhotoGallery應(yīng)用,嘗試進(jìn)行一些搜索并查看返回結(jié)果。


--結(jié)束END--

本文鏈接: http://m.8momo.cn/appkf/2366.html (轉(zhuǎn)載時(shí)請(qǐng)注明來(lái)源鏈接)

 
本文標(biāo)簽: 全部

下班PC閱讀不方便?

手機(jī)也可以隨時(shí)學(xué)習(xí)開(kāi)發(fā)

微信關(guān)注公眾號(hào)“酷云”
"酷云平臺(tái)前端開(kāi)發(fā)教學(xué)"
每日干貨技術(shù)分享
 

×

成為 酷云平臺(tái) 代理商!

關(guān)注

微信
關(guān)注

微信掃一掃
獲取最新優(yōu)惠信息

酷云平臺(tái)公眾號(hào)

客服

聯(lián)系
客服

很高興為您服務(wù)
尊敬的用戶(hù),歡迎您咨詢(xún),我們?yōu)樾掠脩?hù)準(zhǔn)備了優(yōu)惠好禮。 咨詢(xún)客服

聯(lián)系客服:

在線QQ: 3206174

客服電話: 0516-83703228

售前咨詢(xún) 售后服務(wù)
在線交談 智能小云

工作時(shí)間:

周一至周五: 09:00 - 17:00

WAP

手機(jī)
訪問(wèn)

移動(dòng)端訪問(wèn)
手機(jī)上也能選模板

酷云平臺(tái)手機(jī)端

91xxx-91xxxxx-大陆av在线-大陆明星乱淫(高h)小说-黄色三级三级-黄色三级三级三级三级-免费在线观看a视频-免费在线观看www-日韩电影网站-日韩电影网址-香港三级日本三级韩国三级-香港三级网站-中国黄色一级大片-中国黄色一级毛片-无码国产精品免费看-久久精品国产自在天天线
<li id="4u6a6"><input id="4u6a6"></input></li>
  • <button id="4u6a6"><strong id="4u6a6"></strong></button><cite id="4u6a6"></cite>
  • <button id="4u6a6"><acronym id="4u6a6"></acronym></button>
  • 主站蜘蛛池模板: 菠萝蜜影院一区二区免费| 亚洲视频一区二区三区| 亚洲欧洲xxxx| 欧美刺激性大交免费视频| 欧美最猛黑人xxxx黑人猛叫黄| 91九色蝌蚪国产| 久久精品国产2020观看福利| 26uuu另类亚洲欧美日本一| 亚洲精品电影网在线观看| 欧美午夜视频一区二区| 91精品美女在线| 黄色成人在线播放| 91精品国产综合久久香蕉最新版 | 91精品国产777在线观看| 成人国产精品一区二区| 搡老女人一区二区三区视频tv| 欧美性在线观看| 亚洲系列中文字幕| 日本久久久久久久久久久| 国产一区二区三区直播精品电影| 91sa在线看| 中文字幕日韩电影| 国产成人欧美在线观看| 久久精品视频亚洲| 成人免费看吃奶视频网站| 欧美午夜精品久久久久久浪潮| 亚洲综合最新在线| 久久久欧美精品| 在线日韩精品视频| 国产精品永久免费观看| 精品欧美激情精品一区| 日韩精品视频在线免费观看| 91精品国产高清久久久久久久久| 亚洲无线码在线一区观看| 国产精品视频一区二区高潮| 久久97久久97精品免视看 | 亚洲一区二区三区在线视频 | 欧美性猛xxx| 国产亚洲精品久久久| 成人免费淫片aa视频免费| 国模私拍一区二区三区|