《Android項(xiàng)目式程序設(shè)計(jì)》05 數(shù)據(jù)持久化操作寫(xiě)字字帖_第1頁(yè)
《Android項(xiàng)目式程序設(shè)計(jì)》05 數(shù)據(jù)持久化操作寫(xiě)字字帖_第2頁(yè)
《Android項(xiàng)目式程序設(shè)計(jì)》05 數(shù)據(jù)持久化操作寫(xiě)字字帖_第3頁(yè)
《Android項(xiàng)目式程序設(shè)計(jì)》05 數(shù)據(jù)持久化操作寫(xiě)字字帖_第4頁(yè)
《Android項(xiàng)目式程序設(shè)計(jì)》05 數(shù)據(jù)持久化操作寫(xiě)字字帖_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目五數(shù)據(jù)持久化操作學(xué)習(xí)目標(biāo)掌握使用SharedPreferences讀寫(xiě)移動(dòng)智能系統(tǒng)的配置文件掌握讀寫(xiě)SD卡的圖片掌握使用AndroidAPI操作SQLite數(shù)據(jù)庫(kù)情景導(dǎo)入隨著智能手機(jī)的普及,越來(lái)越多的人習(xí)慣將一些重要資料保存到手機(jī)中,一旦手機(jī)沒(méi)電關(guān)機(jī),保存的數(shù)據(jù)也會(huì)隨之丟失。因此Android提供了SharedPreferences、SD存儲(chǔ)、SQLite三種數(shù)據(jù)存儲(chǔ)機(jī)制來(lái)保存數(shù)據(jù)。本次任務(wù)主要實(shí)現(xiàn)登錄系統(tǒng)數(shù)據(jù)持久化操作。任務(wù)描述本任務(wù)將設(shè)計(jì)一款利用SharedPreferences、SD卡和SQLite存儲(chǔ)的“登錄系統(tǒng)”軟件。使用線(xiàn)性布局技術(shù)來(lái)設(shè)計(jì)登錄系統(tǒng)界面Logo界面,Toast提示“歡迎進(jìn)入登錄系統(tǒng)”登錄界面,點(diǎn)擊“注冊(cè)”按鈕,跳轉(zhuǎn)到注冊(cè)界面注冊(cè)界面,輸入姓名、性別、用戶(hù)名、用戶(hù)密碼,點(diǎn)擊圖片拍照,點(diǎn)擊“注冊(cè)”按鈕進(jìn)行注冊(cè)登錄界面,輸入已注冊(cè)的用戶(hù)名和用戶(hù)密碼,點(diǎn)擊“登錄”按鈕進(jìn)行登錄登錄界面,點(diǎn)擊“記住密碼”選擇框,程序退出后再次進(jìn)入登錄界面時(shí),用戶(hù)名,用戶(hù)密碼依舊顯示登錄界面,點(diǎn)擊“自動(dòng)登錄”選擇框,程序退出后再次進(jìn)入登錄界面時(shí),系統(tǒng)自動(dòng)實(shí)現(xiàn)登錄功能【基本框架】基本框架如圖5.1、5.2所示,將框架圖轉(zhuǎn)換成的效果如圖5.3-5.6所示。任務(wù)描述圖5.1登錄系統(tǒng)Login界面框架圖圖5.2登錄系統(tǒng)Register界面框架圖

圖5.3登錄系統(tǒng)Logo界面效果圖

任務(wù)描述圖5.4登錄系統(tǒng)Login界面效果圖

圖5.5登錄系統(tǒng)Register界面效果圖圖5.6登錄系統(tǒng)Success界面效果圖任務(wù)技能技能點(diǎn)1SharedPreferences概述1SharedPreferences存儲(chǔ)類(lèi)的特點(diǎn)SharedPreferences存儲(chǔ)類(lèi)是以XML方式來(lái)保存,整體效率比較低,但對(duì)于常規(guī)的輕量級(jí)而言效率要高很多,如果存儲(chǔ)量小可以考慮自己定義文件格式。XML處理文件時(shí)是使用Dalvik通過(guò)自帶底層的本地XMLParser解析的,XMLPull方式也是使用的上述方法進(jìn)行解析文件,這樣對(duì)于內(nèi)存資源占用比較好。任務(wù)技能2SharedPreferences的特點(diǎn)SharedPreferences是Android平臺(tái)上一個(gè)輕量級(jí)的存儲(chǔ)類(lèi),有以下幾個(gè)特點(diǎn):保存應(yīng)用的一些常用配置。在Activity生命周期中了解當(dāng)Activity執(zhí)行onpause()時(shí),最好存儲(chǔ)數(shù)據(jù),一般將此Activity的狀態(tài)保存到SharedPreferences中。當(dāng)Activity重載的時(shí)候,系統(tǒng)回調(diào)方法onSaveInstanceState(),就能從SharedPreferences中將值取出SharePreferences提供了多種類(lèi)型數(shù)據(jù)的保存接口,比如long、int、String、char類(lèi)型接口可以全局共享訪(fǎng)問(wèn)任務(wù)技能3SharedPreferences操作模式移動(dòng)應(yīng)用程序存儲(chǔ)配置數(shù)據(jù)有四種模式,在上下文創(chuàng)建SharedPreferences實(shí)例對(duì)象的時(shí)候要指定目標(biāo)訪(fǎng)問(wèn)應(yīng)用程序的訪(fǎng)問(wèn)模式。四種模式如表5.1所示。任務(wù)技能4SharedPreferences常用方法及實(shí)現(xiàn)步驟SharedPreferences常用來(lái)存儲(chǔ)一些輕量級(jí)的數(shù)據(jù),常用的方法如表5.2所示。任務(wù)技能技能點(diǎn)2讀寫(xiě)SD卡1

Environment類(lèi)的常用方法移動(dòng)設(shè)備的拍照頻率高且每個(gè)圖片都需要一定的存儲(chǔ)空間,因此采用讀寫(xiě)SD卡中的數(shù)據(jù)可以滿(mǎn)足業(yè)務(wù)需求的存儲(chǔ)要求。讀寫(xiě)SD卡上的圖片文件都是通過(guò)流的方式進(jìn)行讀取的,可以使用在Java面向?qū)ο蟪绦蛟O(shè)計(jì)中的流操作類(lèi)。在讀寫(xiě)SD卡時(shí)會(huì)常用到設(shè)備環(huán)境android.os.Environment工具類(lèi),Environment類(lèi)的常用方法說(shuō)明如表5.3所示。任務(wù)技能2讀寫(xiě)SD卡的文件的步驟讀寫(xiě)SD卡的文件的一般步驟為:(1)判斷移動(dòng)設(shè)備中是否存在SD卡,如果存在則對(duì)Android系統(tǒng)SD卡里的文件操作添加使用權(quán)限。程序通過(guò)調(diào)用Environment.getExternalStorageState()方法的返回值與Environment.MEDIA_MOUNTED比較,如果SD卡存在并且具有操作權(quán)限則返回true。Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)Android中SD卡外部設(shè)置的狀態(tài)情況如表5.4所示。任務(wù)技能(2)通過(guò)調(diào)用Environment.getExternalStorageDirectory()獲取文件絕對(duì)路徑(即/mnt/sdcard/+文件名),也可以在程序中直接寫(xiě)“/mnt/sdcard/+文件名”這個(gè)字符串。(3)獲取文件路徑后的操作,使用FileInputStream、FileOutputStream、FileReader、FileWriter四個(gè)類(lèi)的方法實(shí)現(xiàn)讀寫(xiě)SD卡文件數(shù)據(jù)。(4)如果是在模擬器中測(cè)試使用SD卡,需要設(shè)置SD卡的大小如圖5.7所示。在Android操作系統(tǒng)中操作SD卡需要在AndroidManifest.xml配置文件的Permission選項(xiàng)卡添加兩個(gè)用戶(hù)訪(fǎng)問(wèn)權(quán)限,如圖5.8所示。任務(wù)技能任務(wù)技能任務(wù)技能技能點(diǎn)3SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介及操作1SQLite數(shù)據(jù)庫(kù)簡(jiǎn)介SQLite輕量級(jí)關(guān)系型數(shù)據(jù)庫(kù)發(fā)布于2000年。盡管SQLite是一個(gè)輕量級(jí)的數(shù)據(jù)庫(kù),但它支持關(guān)系型數(shù)據(jù)庫(kù)(如SQLServer、Oracle)操作數(shù)據(jù)的大部分功能,如觸發(fā)器、索引、自動(dòng)增長(zhǎng)字段和LIMIT/OFFSET子句等。SQLite數(shù)據(jù)庫(kù)在運(yùn)行時(shí)占用的系統(tǒng)資源極少,目前廣泛的應(yīng)用在嵌入式產(chǎn)品中。Android平臺(tái)已經(jīng)嵌入了SQLite數(shù)據(jù)庫(kù),其具有如下特點(diǎn)。任務(wù)技能跨平臺(tái):SQLite可以編譯運(yùn)行在絕大多數(shù)主流操作平臺(tái)上的軟件,也適用于移動(dòng)終端平臺(tái)緊湊性:SQLite一個(gè)功能齊全但體積很小數(shù)據(jù)庫(kù),可以描述為1個(gè)頭文件,1個(gè)庫(kù)適應(yīng)性:作為一個(gè)內(nèi)嵌式的數(shù)據(jù)庫(kù),具備強(qiáng)有力而且可伸縮的關(guān)系型數(shù)據(jù)庫(kù)前端,簡(jiǎn)單而緊湊的多路搜索樹(shù)后端不受拘束的授權(quán):SQLite的全部代碼都在公共域中,不需要授權(quán)可靠性:SQLite是一個(gè)開(kāi)源的數(shù)據(jù)庫(kù),包含大約30000行標(biāo)準(zhǔn)C代碼易用性:SQLite還提供一些獨(dú)特的功能來(lái)提高易用性,包括動(dòng)態(tài)類(lèi)型、沖突解決和“附加”多個(gè)數(shù)據(jù)庫(kù)到一個(gè)連接的能力任務(wù)技能SQLite的存儲(chǔ)是采用動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)類(lèi)型,可以根據(jù)存入的值自動(dòng)進(jìn)行判斷。SQLite支持5種數(shù)據(jù)類(lèi)型:NULL-空值、INTEGER-帶符號(hào)的整型、REAL-浮點(diǎn)型、TEXT-字符串文本和BLOB-二進(jìn)制對(duì)象。在實(shí)際編程過(guò)程中SQLite數(shù)據(jù)庫(kù)可以寫(xiě)入int、varchar等大多數(shù)數(shù)據(jù)類(lèi)型,在數(shù)據(jù)庫(kù)運(yùn)算或保存時(shí)將其轉(zhuǎn)化為可以接受的5種數(shù)據(jù)類(lèi)型。移動(dòng)應(yīng)用開(kāi)發(fā)階段只需要引用SQLite提供的API接口工具類(lèi)即可創(chuàng)建和使用指定的數(shù)據(jù)庫(kù)。通常在移動(dòng)平臺(tái)上使用SQLiteDatabase工具類(lèi)創(chuàng)建或打開(kāi)數(shù)據(jù)庫(kù)的方法說(shuō)明,如表5.5所示。任務(wù)技能任務(wù)技能2SQLite數(shù)據(jù)庫(kù)操作基于數(shù)據(jù)庫(kù)創(chuàng)建的基礎(chǔ)上,可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行建表并且對(duì)數(shù)據(jù)庫(kù)表的DML(數(shù)據(jù)操縱)進(jìn)行操作。根據(jù)AndroidAPI中SQLiteDatabase提供的數(shù)據(jù)操作方法,下面通過(guò)表5.6列出常用的數(shù)據(jù)操作方法。任務(wù)技能任務(wù)實(shí)施第一步:在Eclipse中創(chuàng)建一個(gè)Android工程,命名為“登錄系統(tǒng)”

,并設(shè)計(jì)界面。如圖5.3-5.6所示。第二步:在src文件夾下建立LogoActivity.java文件和LoginActivity.java文件,并實(shí)現(xiàn)從閃屏界面跳轉(zhuǎn)到登錄界面。

第三步:實(shí)現(xiàn)Login界面初始化。第四步:在src文件夾中下建立

RegisterActivity.java文件并設(shè)置Login界面“注冊(cè)”按鈕事件,點(diǎn)擊“注冊(cè)”按鈕,跳轉(zhuǎn)到Register界面。

任務(wù)實(shí)施第五步:在src文件夾下建立數(shù)據(jù)庫(kù)register.db并建表msg。第六步:在Register界面實(shí)現(xiàn)界面初始化。第七步:在RegisterActivity.java界面輸入姓名、賬號(hào)、密碼、性別,利用系統(tǒng)照相機(jī)拍照。第八步:在Register界面設(shè)置“注冊(cè)”按鈕點(diǎn)擊事件,點(diǎn)擊“注冊(cè)”按鈕將界面上的所有信息保存到數(shù)據(jù)庫(kù)中。任務(wù)實(shí)施第九步:將注冊(cè)信息寫(xiě)入數(shù)據(jù)庫(kù)表msg中。第十步:返回到Login界面設(shè)置“登錄”按鈕事件。點(diǎn)擊“登錄”按鈕查詢(xún)數(shù)據(jù)庫(kù)信息。第十一步:將查詢(xún)信息語(yǔ)句寫(xiě)入數(shù)據(jù)庫(kù)表msg中。第十二步:在Login界面判斷數(shù)據(jù)庫(kù)信息與輸入信息是否相同,根據(jù)判斷結(jié)果進(jìn)行登錄或提示錯(cuò)誤,并添加記住密碼以及自動(dòng)登錄功能。第十三步:運(yùn)行程序,結(jié)果如圖5.3-5.6

所示。

任務(wù)拓展【拓展目的】

熟悉并掌握數(shù)據(jù)持久化操作技能。【拓展內(nèi)容】在“登錄系統(tǒng)”基礎(chǔ)上增加“忘記密碼”功能。結(jié)果如圖5.9–5.11所示。圖5.9Login界面

結(jié)果圖

圖5.10Forget界面結(jié)果圖

圖5.11Update界面結(jié)果圖【拓展步驟】1設(shè)計(jì)思路點(diǎn)擊“忘記密碼”后,用戶(hù)可根據(jù)用戶(hù)真實(shí)姓名與賬號(hào)修改密碼。修改信息判斷以及提示信息。輸入新密碼進(jìn)行密碼修改。修改數(shù)據(jù)庫(kù)數(shù)據(jù)代碼。任務(wù)拓展任務(wù)總結(jié)本項(xiàng)目?jī)?nèi)容

主要介紹了在移動(dòng)設(shè)備中應(yīng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論