安卓記事本實(shí)習(xí)報(bào)告_第1頁
安卓記事本實(shí)習(xí)報(bào)告_第2頁
安卓記事本實(shí)習(xí)報(bào)告_第3頁
安卓記事本實(shí)習(xí)報(bào)告_第4頁
安卓記事本實(shí)習(xí)報(bào)告_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Android記事本的設(shè)計(jì)與實(shí)現(xiàn) Android記事本的設(shè)計(jì)與實(shí)現(xiàn)——SQLite數(shù)據(jù)庫的設(shè)計(jì)和操作學(xué)生姓名:指導(dǎo)老師:摘要:隨著智能手機(jī)的快速普及,智能手機(jī)操作系統(tǒng)市場風(fēng)生水起。Android的最大特點(diǎn)是其開放性體系架構(gòu),不僅具有非常好的開發(fā)、調(diào)試環(huán)境,而且還支持各種可擴(kuò)展的用戶體驗(yàn),包括豐富的圖形組件、多媒體支持功能以及強(qiáng)大的瀏覽器。本文主要介紹了一款A(yù)ndroid記事本SQLite數(shù)據(jù)庫模塊的設(shè)計(jì)與實(shí)現(xiàn)。根據(jù)人們?nèi)粘I畹男枰?,該記事本的?nèi)容包括運(yùn)用SQLite封裝好的方法對(duì)數(shù)據(jù)進(jìn)行添加、刪除、修改、更新和密碼進(jìn)入等功能,并且將查詢到的數(shù)據(jù)傳遞給activity,具有一定的實(shí)用性。關(guān)鍵詞:記事本;Android;手勢密碼;SQLite;Activity

DesignandimplementationofAndroidnotepad—DesignandoperationoftheSQLitedatabaseStudentname:Advisor:AbstractWiththerapidproliferationofsmartphones,smartphoneoperatingsystemmarketburgeoned.Android'sbiggestfeatureisitsopenarchitecture,notonlyhasaverygooddevelopment,debuggingenvironment,butalsosupportsavarietyofscalableuserexperience,includingrichgraphicalcomponents,multimediasupportandpowerfulbrowser.

ThispaperdescribesthedesignandimplementationofanAndroidnotepadSQLitedatabasemodule.Accordingtotheneedsofdailylife,includingthecontentsofthenotepadgoodwaytouseSQLitepackagedatatoadd,delete,modify,updateandpasswordtoaccessotherfunctions,andquerythedataispassedtotheactivity,hasacertainpracticality.KeywordsNotepad;Android;gesturepassword;SQLite;Activity

1.3系統(tǒng)可行性分析1.3.1

課題調(diào)研

與實(shí)踐活動(dòng)和相關(guān)的文件和資料由作者本人網(wǎng)絡(luò)查找,以及老師幫助。

具有遇到問題,具有獨(dú)立思考,耐心鉆研,向老師虛心求教的良好態(tài)度。

關(guān)于技術(shù)方面的難題,跟指導(dǎo)老師面談。

1.3.2

可行性分析

技術(shù)可行性:本項(xiàng)目僅需要一臺(tái)裝有Eclipse及配置好Android開發(fā)環(huán)境的計(jì)算機(jī)即可,對(duì)計(jì)算機(jī)本身有一定的要求,它可以使用WindowsXp及其以上版本,Macos,Linux等操作系統(tǒng)。

經(jīng)濟(jì)可行性:由于本軟件開發(fā)只有三個(gè)人,三臺(tái)電腦就行,基本不需要太大的成本.在經(jīng)濟(jì)上完全可行。

操作可行性:界面設(shè)計(jì)時(shí)充分考慮用戶的習(xí)慣以及手機(jī)方面的局限性,程序必須要很簡單;本程序只涉及到開發(fā)環(huán)境配置,安卓組件的熟悉,以及安卓平臺(tái)上的數(shù)據(jù)存儲(chǔ)。并沒有太大的難度,所以,該項(xiàng)目完全有可操作性。1.4系統(tǒng)主要任務(wù)

(1)設(shè)計(jì)實(shí)現(xiàn)”添加新記事”,”編輯內(nèi)容”,”刪除當(dāng)前記事”這三個(gè)主要的功能模塊。

(2)分析并解決實(shí)現(xiàn)中的若干技術(shù)問題,像組件的選擇以及保存方式的選擇。

(3)進(jìn)行測試并分析結(jié)果。

當(dāng)然記事本的基本功能,建立新文件、修改現(xiàn)有文件、刪除文件、查看已建立文件等功能是首先必須完成的??梢跃帉憙?nèi)容,編輯及刪除,讓記事的方式多樣化。記事本軟件的界面設(shè)計(jì)力求簡潔,給人清爽的感覺,讓圖標(biāo)及按鈕以協(xié)調(diào)的布局呈現(xiàn)出了,菜單功能要相對(duì)簡單,讓用戶操作方便,從而讓用戶體會(huì)到此款軟件的實(shí)用。因?yàn)樯鲜霾僮魃婕暗降臄?shù)據(jù)量不大,所以將數(shù)據(jù)庫定為安卓系統(tǒng)自帶的SQLite數(shù)據(jù)庫[3],所以這就要求我們要實(shí)現(xiàn)在SQLite數(shù)據(jù)庫上面的增刪改查。不少人希望自己記事本上面的內(nèi)容不被被人查看,所以要以設(shè)置密碼的形式來實(shí)現(xiàn)保密。鑒于各種各樣的密碼實(shí)現(xiàn)方式,我們選擇了用戶體驗(yàn)最好的手勢解鎖方式。以及采用了更加友好的時(shí)間顯示方式,讓用戶在使用過程中更加的舒服方便。記事本軟件要內(nèi)存占用適中,CPU占用也是適中,這樣讓軟件運(yùn)行順暢。2.系統(tǒng)方案設(shè)計(jì)2.1搭建Android開發(fā)平臺(tái)2.1.1

安裝包下載

(1)java

JDK下載

進(jìn)入/javase/downloads/index.jsp選擇DownloadJDK只下載JDK,無需下載jre。

(2)Eclipse下載

進(jìn)入/downloads我們選擇第一個(gè),即EclipseIDEforjavaEEDevelopers。(3)AndroidSDK下載

說明:AndroidSDK兩種下載版本,一種是包含具體版本的SDK的,一種是只有升級(jí)工具,而不包含具體的SDK版本,完全版下載(Androidsdk2.01)。

2.1.2

軟件安裝

(1)安裝JDK

安裝完成即可。

(2)解壓Eclipse

Eclipse無需安裝,解壓后,直接打開就行。

(3)解壓Android

SDK

這個(gè)也無需安裝,解壓后供后面使。

(4)配置Eclipse

打開Eclipse,在菜單欄上選擇help->InstallNewSoftWare點(diǎn)擊Add按鈕,出現(xiàn)如下界面,輸入網(wǎng)址:/android/eclipse/(如果出錯(cuò),請(qǐng)將https改成http),名稱:Android(這里可以自定義),點(diǎn)擊OK,點(diǎn)擊Next按鈕,點(diǎn)擊Next按鈕,出現(xiàn)如下界面:選擇Iacceptthetermsofthelicenseagreements,點(diǎn)擊Next,進(jìn)入安裝插件界面安裝完成后,點(diǎn)擊Yes按鈕,重啟Eclips。

(5)配置AndroidSDK

點(diǎn)擊菜單window->preferences選擇你的AndroidSDK解壓后的目錄,選錯(cuò)了就會(huì)報(bào)錯(cuò),這個(gè)是升級(jí)工具,目前還沒有一個(gè)版本的SDK。

升級(jí)SDK版本,選擇菜單window->Androidsdkandavdmanager。選擇update

all按鈕,出現(xiàn)如下界面選擇左邊的某一項(xiàng),點(diǎn)擊accept表示安裝,點(diǎn)擊reject表示不安裝,我這里只選了SDK2.1和samplesforapi7。自己可以任意自定義,確定后,選擇install按鈕,進(jìn)入安裝界面:安裝完成。

(6)新建AVD(Android

vitural

device)

和上面一樣,進(jìn)入Androidsdkandavdmanager,選中VituralDevices在點(diǎn)擊New按鈕后,名稱可以隨便取,target選擇你需要的SDK版本,SD卡大小自定義,點(diǎn)擊CreateAVD,顯示創(chuàng)建AVD完畢。

(7)新建Android項(xiàng)目

選擇菜單file->new->other

進(jìn)入如下界面:選擇新建AndroidProject項(xiàng)目,點(diǎn)擊Next按鈕,進(jìn)入如下界面名稱自定義,應(yīng)用程序名自定義,報(bào)名必須包含一個(gè)點(diǎn)以上,minSDKversion里面必須輸入整數(shù)

(8)配置運(yùn)行

右鍵項(xiàng)目->Runas->RunConfiguration該界面,點(diǎn)擊Browse按鈕,選擇你要運(yùn)行的項(xiàng)目選擇Target切換到以下界面該界面選擇運(yùn)行的AVD,將AVD前面的方框設(shè)置為選擇狀態(tài)。

(9)測試項(xiàng)目運(yùn)行右鍵項(xiàng)目名稱->runas->AndroidApplication即可啟動(dòng)運(yùn)行該Android程序。2.2SQLite數(shù)據(jù)庫簡介SQLite是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個(gè)相對(duì)小的C庫中。它是D.RichardHipp建立的公有領(lǐng)域項(xiàng)目。它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語言相結(jié)合,比如Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源的世界著名數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個(gè)Alpha版本誕生于2000年5月。至2015年已經(jīng)有15個(gè)年頭,SQLite也迎來了一個(gè)版本SQLite3已經(jīng)發(fā)布。2.2.1SQLite功能特性1.ACID事務(wù)2.零配置–無需安裝和管理配置3.儲(chǔ)存在單一磁盤文件中的一個(gè)完整的數(shù)據(jù)庫4.數(shù)據(jù)庫文件可以在不同字節(jié)順序的機(jī)器間自由的共享5.支持?jǐn)?shù)據(jù)庫大小至2TB6.足夠小,大致13萬行C代碼,4.43M7.比一些流行的數(shù)據(jù)庫在大部分普通數(shù)據(jù)庫操作要快8.簡單,輕松的API9.包含TCL綁定,同時(shí)通過Wrapper支持其他語言的綁定10.良好注釋的源代碼,并且有著90%以上的測試覆蓋率11.獨(dú)立:沒有額外依賴12.源碼完全的開源,你可以用于任何用途,包括出售它13.支持多種開發(fā)語言,C,C++,PHP,Perl,Java,C#,Python,Ruby等同時(shí)它還支持事務(wù)處理功能等等。也有人說它象Microsoft的Access,有時(shí)候真的覺得有點(diǎn)象,但是事實(shí)上它們區(qū)別很大。比如SQLite支持跨平臺(tái),操作簡單,能夠使用很多語言直接創(chuàng)建數(shù)據(jù)庫,而不象Access一樣需要Office的支持。如果你是個(gè)很小型的應(yīng)用,或者你想做嵌入式開發(fā),沒有合適的數(shù)據(jù)庫系統(tǒng),那么你可以考慮使用SQLite。到2013年10月17日最新版本是3.8.1。能在上面獲得源代碼和文檔。同時(shí)因?yàn)閿?shù)據(jù)庫結(jié)構(gòu)簡單,系統(tǒng)源代碼也不是很多,也適合想研究數(shù)據(jù)庫系統(tǒng)開發(fā)的專業(yè)人士.2.2.2Java連接SQLite數(shù)據(jù)庫:publicclassTestSQLite{publicstaticvoidmain(String[]args){try{//連接SQLite的JDBCClass.forName("org.sqlite.JDBC");//建立一個(gè)數(shù)據(jù)庫名zieckey.db的連接,如果不存在就在當(dāng)前目錄下創(chuàng)建之Connectionconn=DriverManager.getConnection("jdbc:sqlite:zieckey.db");Statementstat=conn.createStatement();stat.executeUpdate("createtabletbl1(namevarchar(20),salaryint);");//創(chuàng)建一個(gè)表,兩列stat.executeUpdate("insertintotbl1values('ZhangSan',8000);");//插入數(shù)據(jù)stat.executeUpdate("insertintotbl1values('LiSi',7800);");stat.executeUpdate("insertintotbl1values('WangWu',5800);");stat.executeUpdate("insertintotbl1values('ZhaoLiu',9100);");ResultSetrs=stat.executeQuery("select*fromtbl1;");//查詢數(shù)據(jù)while(rs.next()){//將查詢到的數(shù)據(jù)打印出來System.out.print("name="+rs.getString("name")+"");//列屬性一System.out.println("salary="+rs.getString("salary"));//列屬性二}rs.close();conn.close();//結(jié)束數(shù)據(jù)庫的連接}catch(Exceptione){e.printStackTrace();}}}2.3總體方案設(shè)計(jì)在本模塊中,主要設(shè)計(jì)到三個(gè)文件,第一個(gè)是與數(shù)據(jù)庫表相對(duì)應(yīng)的實(shí)體類,第二個(gè)是創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表的類,第三個(gè)是對(duì)應(yīng)的增刪改查的方法。下面是整個(gè)項(xiàng)目的總體方案設(shè)計(jì):本次Android項(xiàng)目中運(yùn)用的技術(shù)比較廣,從基礎(chǔ)的Activity、SQLite到開源的手勢密碼組件,因此將項(xiàng)目盡可能完美的整合到一起成了很重要的一部,如何將總體方案設(shè)計(jì)的規(guī)范以及高校是必不可少。從人員安排上,我們?nèi)朔诸^進(jìn)行,各不影響,我主要負(fù)責(zé)的是Activity的展示,也就是將其他組員的勞動(dòng)成果展示出來,那么如何美觀以及高性能的展示變成了難點(diǎn)。從設(shè)計(jì)模式上,我們嚴(yán)格遵循AndroidDesign的規(guī)格,并且使用Google在I/O大會(huì)上推薦的一些開發(fā)方法,從而盡可能的講模塊規(guī)范化。從時(shí)間分配上,我們進(jìn)行了敏捷性開發(fā),充分合理的利用了大家的時(shí)間。3.系統(tǒng)軟件開發(fā)環(huán)境3.1Windows開發(fā)環(huán)境1.用戶界面統(tǒng)一、友好、漂亮:Windows應(yīng)用程序大多符合IBM公司提出的CUA(CommonUserAcess)標(biāo)準(zhǔn),所有的程序擁有相同的或相似的基本外觀,包括窗口、菜單、工具條等。用戶只要掌握其中一個(gè),就不難學(xué)會(huì)其他軟件,從而降低了用戶培訓(xùn)學(xué)習(xí)的費(fèi)用。2.豐富的設(shè)備無關(guān)的圖形操作:Windows的圖形設(shè)備接口(GDI)提供了豐富的圖形操作函數(shù),可以繪制出諸如線、圓、框等的幾何圖形,并支持各種輸出設(shè)備。設(shè)備無關(guān)意味著在針式打印機(jī)上和高分辨率的顯示器上都能顯示出相同效果的圖形。3.多任務(wù):Windows是一個(gè)多任務(wù)的操作環(huán)境,它允許用戶同時(shí)運(yùn)行多個(gè)應(yīng)用程序,或在一個(gè)程序中同時(shí)做幾件事情。每個(gè)程序在屏幕上占據(jù)一塊矩形區(qū)域,這個(gè)區(qū)域稱為窗口,窗口是可以重疊的。用戶可以移動(dòng)這些窗口,或在不同的應(yīng)用程序之間進(jìn)行切換,并可以在程序之間進(jìn)行手工和自動(dòng)的數(shù)據(jù)交換和通信。雖然同一時(shí)刻計(jì)算機(jī)可以運(yùn)行多個(gè)應(yīng)用程序,但僅有一個(gè)是處于活動(dòng)狀態(tài)的,其標(biāo)題欄呈現(xiàn)高亮顏色。一個(gè)活動(dòng)的程序是指當(dāng)前能夠接收用戶鍵盤輸入的程序。3.2JAVA集成開發(fā)環(huán)境eclipseEclipse是一個(gè)開放源代碼的、基于Java

的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(JavaDevelopmentKit,JDK)。雖然大多數(shù)用戶很樂于將Eclipse當(dāng)作Java集成開發(fā)環(huán)境(IDE)來使用,但Eclipse的目標(biāo)卻不僅限于此。Eclipse還包括插件開發(fā)環(huán)境(Plug-inDevelopmentEnvironment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展Eclipse的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與Eclipse環(huán)境無縫集成的工具[6]。由于Eclipse中的每樣?xùn)|西都是插件,對(duì)于給Eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。這種平等和一致性并不僅限于Java開發(fā)工具[7]。盡管Eclipse是使用Java語言開發(fā)的,但它的用途并不限于Java語言;例如,支持諸如C/C++、COBOL、PHP等編程語言的插件已經(jīng)可用,或預(yù)計(jì)將會(huì)推出。Eclipse框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ)。3.3ADTPluginforEclipseADTPluginforEclipse[9]是Eclipse插件,作用是關(guān)聯(lián)AndroidSDK,使Eclipse能夠創(chuàng)建Android工程。Android開發(fā)工具(ADT)是一個(gè)EclipseIDE,目的是給你一個(gè)強(qiáng)大的插件,集成環(huán)境中構(gòu)建Android應(yīng)用程序。Eclipse的ADT延伸的能力,可以快速建立新的Android[10]項(xiàng)目,創(chuàng)建一個(gè)應(yīng)用程序的用戶界面,添加組件基于Android框架API,使用AndroidSDK工具調(diào)試程序,甚至出口簽名(或無)APKs以分發(fā)你的應(yīng)用。4.程序設(shè)計(jì)4.1程序詳細(xì)設(shè)計(jì)圖4.1系統(tǒng)流程圖安卓記事本本人涉及到的是SQLite的設(shè)計(jì)與操作,主要設(shè)計(jì)到的文件有三個(gè)。分別是:MemoItem.java(與數(shù)據(jù)庫表相對(duì)應(yīng)的實(shí)體類)、MemoService.java(對(duì)SQLite數(shù)據(jù)庫進(jìn)行增刪改查的方法)、DBHelper.java(建立數(shù)據(jù)庫、建立表的方法)。在SQLite上建數(shù)據(jù)庫,建表主要要繼承SQLiteOpenHelper這個(gè)類。在構(gòu)造方法中實(shí)現(xiàn)建數(shù)據(jù)庫,在onCreate方法中進(jìn)行建表。實(shí)現(xiàn)數(shù)據(jù)的增刪改查,先用dbOpenHelper獲得WritableDatabase,再進(jìn)行相應(yīng)的操作。還要用到cursor來移動(dòng)游標(biāo),MemoItem返回每一條記錄,List<MemoItem>返回記錄的list集合。在設(shè)計(jì)SQLite數(shù)據(jù)庫的同時(shí),還進(jìn)行了幾個(gè)簡單的Activity的編寫。Activity是Android開發(fā)的重點(diǎn),它與XML一個(gè)負(fù)責(zé)界面,一個(gè)負(fù)責(zé)界面實(shí)現(xiàn)。此外,在寫Activity的時(shí)候充分利用JAVA的繼承特性,將MainActivity作為基類,讓其他Activity繼承它,雖然整個(gè)項(xiàng)目比較小,但是這種利用JAVA特征的設(shè)計(jì)模式還是充分利用了。4.2程序運(yùn)行及效果截圖圖4.2程序的首頁圖4.3繪制手勢圖4.4通過手勢登錄圖4.5登錄成功圖4.6創(chuàng)建新筆記圖4.7創(chuàng)建成功圖4.8更新筆記圖4.9更新成功圖4.10所有筆記顯示頁面4.3對(duì)SQLite數(shù)據(jù)庫增刪改查代碼實(shí)現(xiàn)增刪改查:packagecom.example.others;importjava.util.ArrayList;importjava.util.List;importandroid.content.Context;importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase;publicclassMemoService{ privateDBOpenHelperdbOpenHelper; privateSQLiteDatabasedb; privateCursorcursor; publicMemoService(Contextcontext) { this.dbOpenHelper=newDBOpenHelper(context); } publiclongsave(MemoItemitem)//保存每一條數(shù)據(jù) { db=dbOpenHelper.getWritableDatabase(); Stringsql="insertintomemo(content,time)values(?,?)"; db.execSQL(sql,newObject[]{item.getContent(),item.getTime()});//將時(shí)間插入 cursor= db.rawQuery("SELECTlast_insert_rowid()",null); cursor.moveToFirst();//每次插入保證都在最前面一個(gè) longresult=cursor.getLong(0); cursor.close(); db.close(); returnresult; } publicMemoItemgetMemoById(longtime)//顯示每一條具體的記錄 { db=dbOpenHelper.getReadableDatabase(); cursor=db.rawQuery("select*frommemowherememoid=?", newString[]{time+""}); if(cursor.moveToFirst()) { Stringcontent=cursor.getString(cursor.getColumnIndex("content")); longtimes=cursor.getLong(cursor.getColumnIndex("time")); cursor.close(); db.close(); returnnewMemoItem(content,times); } cursor.close(); db.close(); returnnull; } publicvoidupdateContent(MemoItemitem)//更新每一條記錄 { db=dbOpenHelper.getWritableDatabase(); db.execSQL( "updatememosetcontent=?wheretime=?", newObject[]{item.getContent(),item.getTime() }); db.close(); } publicvoiddelete(longtime)//刪除一條記錄 { db=dbOpenHelper.getWritableDatabase(); db.execSQL("deletefrommemowheretime=?",newObject[]{time}); db.close(); } publiclonggetCount()//得到所有的記錄數(shù) { db=dbOpenHelper.getReadableDatabase(); cursor=db.rawQuery("selectcount(*)frommemo",null); cursor.moveToFirst(); longresult=cursor.getLong(0); cursor.close(); db.close(); returnresult; } publicList<MemoItem>getScrollData(intoffset,longmaxResult)//列表顯示 { List<MemoItem>books=newArrayList<MemoItem>(); db=dbOpenHelper.getReadableDatabase(); cursor=db.rawQuery( "select*frommemoorderbytimedesclimit?,?", newString[]{String.valueOf(offset), String.valueOf(maxResult)}); while(cursor.moveToNext()) { longtime=cursor.getLong(cursor.getColumnIndex("time")); Stringcontent=cursor.getString(cursor.getColumnIndex("content")); books.add(newMemoItem(content,time)); } cursor.close(); db.close(); returnbooks; }}建數(shù)據(jù)庫、建表packagecom.example.others;importandroid.content.Context;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteOpenHelper;publicclassDBOpenHelperextendsSQLiteOpenHelper{ publicDBOpenHelper(Contextcontext) { super(context,"csust.db",null,1);//創(chuàng)建一個(gè)數(shù)據(jù)庫 } publicvoidonCreate(SQLiteDatabasedb) { db.execSQL("CREATETABLEmemo(memoidintegerprimarykeyautoincrement,contentvarchar,timeinterger)");//創(chuàng)建一個(gè)memo表 } publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion) { db.execSQL(null);//更新數(shù)據(jù)庫 }}表所對(duì)應(yīng)的實(shí)體類packagecom.example.others;importandroid.os.Parcel;importandroid.os.Parcelable;publicclassMemoItemimplementsParcelable{ privateStringcontent; privatelongtime; publicMemoItem(){} publicMemoItem(Stringcontent,longtime) { this.content=content; this.time=time; } publicStringgetContent() { returncontent; } publicvoidsetContent(Stringcontent) { this.content=content; } publiclonggetTime() { returntime; } publicvoidsetTime(longtime) { this.time=time; } @Override publicStringtoString() { return"BaseItem[content="+content+",time="+time+"]"; } @Override publicintdescribeContents() { return0; } @Override publicvoidwriteToParcel(Parceldest,intflags) { dest.writeString(content); dest.writeLong(time); } publicstaticfinalParcelable.Creator<MemoItem>CREATOR=newCreator<MemoItem>() { @Override publicMemoItemcreateFromParcel(Parcelsource) { MemoItemitem=newMemoItem(); item.content=source.readString();

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論