操逼高清无码一区二区三区-操逼国产-操逼无码视频-操逼一区-操操操网站-操操操五月天婷

歡迎來到酷云建站平臺,全網營銷云系統加盟中心!

海量企業網站模板 · 任您選擇

美出特色,精出品質,一切為了企業更好的營銷

隱藏側欄
Beta
轉載

如何使用shared preferences來實現輕量級數據存儲?

       APP開發     2021-12-16     admin     13     0    

現在,取代硬編碼搜索字符串,徐州APP開發公司-酷優網絡教你來實現用戶在SearchView中輸入并提交的查詢指令。在PhotoGallery應用中,一次只有一個激活的查詢。應用應該保存這個查詢,即使應用或設備重啟也不會丟失。要實現這個目標,可以把查詢字符串寫入shared preferences。只要用戶提交查詢,就把它寫入shared preferences,覆蓋掉之前保持的字符串。實際搜索Flickr時,就從sharedpreferences中取出查詢字符串,把它作為text參數值。

shared preferences本質上就是文件系統中的文件,可使用SharedPreferences類讀寫它。SharedPreferences實例用起來更像一個鍵值對倉庫(類似于Bundle),但它可以通過持久化存儲保存數據。鍵值對中的鍵為字符串,而值是原子數據類型。進一步查看shared preferences文件可知,它們實際上是一種簡單的XML文件,但SharedPreferences類已屏蔽了讀寫文件的實現細節。shared preferences文件保存在應用沙盒中,所以,類似密碼這樣的敏感信息不應該用它來保存。

要獲得定制的SharedPreferences 實例, 可使用Context.getSharedPreferences (String,int)方法。然而,在實際開發中,我們并不關心具體是什么樣的SharedPreferences實例,只要它能共享于整個應用就可以了。這種情況下,最好使用PreferenceManager.getDefaultSharedPreferences(Context)方法,該方法會返回具有私有權限和默認名稱的實例(僅在當前應用內可用)。

如下圖代碼清單所示,添加一個名為QueryPreferences的新類,用于讀取和寫入查詢字符串。

添加一個名為QueryPreferences的新類

PREF_SEARCH_QUERY用作查詢字符串的存儲key,讀取和寫入時都要用到它。

getStoredQuery(Context)方法返回shared preferences中保存的查詢字符串值。不過,它首先要找到指定context 中的默認SharedPreferences 。( QueryPreferences 類沒有自己的Context,所以該方法的調用者必須傳入一個。)

取出查詢字符串值非常簡單,調用SharedPreferences.getString(...)就可以了。如果是其他類型數據,就調用對應的取值方法,比如getInt(...),SharedPreferences.getString (PREF_SEARCH_QUERY, null)方法的第二個參數指定默認返回值;如果找不到PREF_SEARCH_QUERY對應的值,就返回null值。

setStoredQuery(Context)方法向指定context的默認shared preferences寫入查詢輸入值。在以上代碼中,調用SharedPreferences.edit()方法,可獲取一個SharedPreferences.Editor實例。它就是在SharedPreferences中保存查詢信息要用到的類。與FragmentTransaction的

使用類似,利用SharedPreferences.Editor,可將一組數據操作放入一個事務中。如有一批數據要更新,在一個事務中進行批量數據存儲寫入操作就可以了。

完成所有數據的變更準備后,調用SharedPreferences.Editor的apply()異步方法寫入數據。這樣,該SharedPreferences文件的其他用戶就能看到寫入的數據了。apply()方法首先在內存中執行數據變更,然后在后臺線程上真正把數據寫入文件。

QueryPreferences是PhotoGallery應用的數據存儲引擎。既然已經搞定了查詢信息的讀取和寫入方法,現在就來在PhotoGalleryFragment中應用它們。

首先是保存用戶提交的查詢信息,如下圖代碼所示。

保存用戶提交的查詢信息

接下來,在用戶從溢出菜單選擇Clear Search選項時清除存儲的查詢信息(設置為null),如下圖代碼所示。

在用戶從溢出菜單選擇Clear Search選項時清除存儲的查詢信息(設置為null)

發現沒有?和第二張圖片代碼中的做法一樣,更新完查詢信息,updateItems()方法會被調用。這很有必要,可以確保RecyclerView中顯示最新的搜素結果。

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

更新FetchItemsTask,來使用保存的查詢字符串

搜索功能現在應該可以正常使用了。運行PhotoGallery應用,嘗試進行一些搜索并查看返回結果。


--結束END--

本文鏈接: http://www.gyzk.com.cn/appkf/2366.html (轉載時請注明來源鏈接)

 
本文標簽: 全部

下班PC閱讀不方便?

手機也可以隨時學習開發

微信關注公眾號“酷云”
"酷云平臺前端開發教學"
每日干貨技術分享
 

×

成為 酷云平臺 代理商!

關注

微信
關注

微信掃一掃
獲取最新優惠信息

酷云平臺公眾號

客服

聯系
客服

很高興為您服務
尊敬的用戶,歡迎您咨詢,我們為新用戶準備了優惠好禮。 咨詢客服

聯系客服:

在線QQ: 3206174

客服電話: 0516-83703228

售前咨詢 售后服務
在線交談 智能小云

工作時間:

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

WAP

手機
訪問

移動端訪問
手機上也能選模板

酷云平臺手機端

主站蜘蛛池模板: 精品国产91久久久久久久 | 中文字幕无码成人免费视频 | 天天综合色天天综合色hd | 国产成人精品无码片区 | 福利姬液液酱喷 | 免费一级欧美大片久久网 | 97久久超碰成人精品网站 | 精品亚洲成v人在线观看 | 国产一区二区视频在线观看 | 亚洲免费人成视频在线观看 | 免费特级黄毛片在线成人观看 | 亚洲无码免费资源网 | 啪啪综合视频 | 91抖阴短视频无限观看版app下载 | 亚洲av无码片在线播放 | 国产一区二区三区在线免费观看 | 91视频在线| 日本特黄特色aaa大片免费 | 亚洲av无码一区二区三区性色 | 欧美啪啪抽搐一进一出免费 | 91短视频版在线观看www官 | 国产精品一区二区三区99性 | 色天天综合色 | 区二区免费 | 国产综合久久久久鬼色 | 免费大片黄国产在线观看 | 欧美一区二区三区爱爱 | 老熟妇高潮一区二区三区 | 日韩欧美国产一区二区色 | 国产精品一国产精品免费 | 成人区精品一区二区毛片不卡 | 狠狠色综合网久久久久久 | 亚洲精品aⅴ| 国产一区二区高清 | 免费无遮挡无码视频在线观看 | 亚洲无线国产观看原 | 片无码观看| 91九色熟女| 日本高清www色视频网站 | 亚洲欧美激情精品一区二区 | 日韩亚洲av |