版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)論文</b></p><p> 論文題目:基于Android的背單詞軟件的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> 姓 名:</b></p><p><b> 學(xué) 號(hào):</b></p><p><b> 班 級(jí):
2、</b></p><p> 專 業(yè):軟件工程</p><p> 學(xué) 院:軟件學(xué)院</p><p><b> 指導(dǎo)老師:</b></p><p> 完成時(shí)間:2014年4月17日</p><p> 基于Android的背單詞軟件的設(shè)計(jì)與實(shí)現(xiàn)</p>&
3、lt;p><b> 摘 要</b></p><p> 隨著經(jīng)濟(jì)全球化,我們與外國人的接觸越來越多,英語已經(jīng)成為了中國與外面交流的主要工具,同時(shí)我國的英語教育也開始普及到了小學(xué),人們對(duì)學(xué)習(xí)英語越來越重視。而對(duì)于學(xué)習(xí)英語特別是英語單詞記憶,記憶單詞的方式也在不斷的更新,而今移動(dòng)互聯(lián)網(wǎng)時(shí)代的到來,尤其智能手機(jī)的廣泛應(yīng)用,英語學(xué)習(xí)的平臺(tái)已經(jīng)逐漸向計(jì)算機(jī)或者手機(jī)等移動(dòng)設(shè)備上轉(zhuǎn)移,背單詞的方
4、式方法進(jìn)入一個(gè)新的領(lǐng)域。背單詞軟件是當(dāng)下比較流行且方便有效的輔助記憶工具,本文介紹的背單詞軟件是一款基于android平臺(tái)的應(yīng)用軟件,其主要功能有單詞學(xué)習(xí),單詞背誦,單詞測試,真人發(fā)音,添加生詞本等。同時(shí)本文對(duì)背單詞軟件開發(fā)中有關(guān)系統(tǒng)設(shè)計(jì),系統(tǒng)實(shí)施方法和設(shè)計(jì)詞庫等方面進(jìn)行了探索,以此推動(dòng)計(jì)算機(jī)英語輔助軟件開發(fā)。</p><p> 關(guān)鍵詞: Android; 背單詞; 英文學(xué)習(xí); 軟件開發(fā)</p>
5、<p> Design and implementation of memorizing word software based on Android</p><p><b> Abstract</b></p><p> With the economic globalization, we contact with foreigners more a
6、nd more, English has become the main tool to communicate with foreign in China, English education in our country also started to popularize the primary school, people pay more and more attention to learning English. For
7、learning English especially in English words memory,memorize words way are also constantly updated, but now the advent of the era of mobile Internet,especially the wide application of smart phones,English learning </p
8、><p> Key words: Android; recite words; English study; software development </p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</
9、p><p><b> 1. 緒 論1</b></p><p><b> 1.1研究內(nèi)容1</b></p><p><b> 1.2研究意義1</b></p><p> 1.3研究現(xiàn)狀和發(fā)展趨勢1</p><p> 2. 平臺(tái)與開發(fā)工具3
10、</p><p> 2.1 開發(fā)平臺(tái)介紹3</p><p> 2.2 開發(fā)語言與開發(fā)環(huán)境3</p><p> 3. 英語背單詞軟件總體設(shè)計(jì)與需求分析5</p><p> 3.1 Android四大組件簡介5</p><p> 3.2 Android 手機(jī)應(yīng)用軟件的UI設(shè)計(jì)6</p>&
11、lt;p> 3.3 英語背單詞軟件需求分析與性能分析7</p><p> 3.4 英語背單詞軟件操作流程圖與數(shù)據(jù)庫設(shè)計(jì)7</p><p> 3.4.1 英語背單詞軟件操作流程圖7</p><p> 3.4.2 數(shù)據(jù)庫的創(chuàng)建與設(shè)計(jì)8</p><p> 4. 系統(tǒng)各個(gè)模塊的具體實(shí)現(xiàn)13</p><p&
12、gt; 4.1 啟動(dòng)模塊的實(shí)現(xiàn)13</p><p> 4.2 用戶信息模塊的實(shí)現(xiàn)14</p><p> 4.3 用戶單詞學(xué)習(xí)模塊的實(shí)現(xiàn)16</p><p> 4.4 用戶單詞復(fù)習(xí)模塊的實(shí)現(xiàn)17</p><p> 4.5 用戶單詞測試模塊的實(shí)現(xiàn)19</p><p> 4.6 生詞本模塊的實(shí)現(xiàn)20&
13、lt;/p><p> 4.7 各界面之間切換的實(shí)現(xiàn)21</p><p> 5. 客戶端界面測試23</p><p> 5.1 系統(tǒng)測試的目標(biāo)23</p><p> 5.2 測試流程23</p><p> 5.3 測試用例與測試結(jié)果23</p><p><b> 6.
14、總結(jié)24</b></p><p> 6.1 本文工作總結(jié)24</p><p> 6.2 進(jìn)一步工作的打算24</p><p><b> 參考文獻(xiàn)25</b></p><p><b> 致 謝25</b></p><p><b> 外
15、文原文26</b></p><p><b> 外文翻譯37</b></p><p><b> 1. 緒 論</b></p><p><b> 1.1研究內(nèi)容</b></p><p> 本著對(duì)用戶學(xué)習(xí)英語提供便利和有效記憶的目標(biāo),該英語背單詞軟件是基于A
16、ndroid手機(jī)平臺(tái),通過詞庫的解析與導(dǎo)入,開發(fā)出針對(duì)使用Android平臺(tái)的手機(jī)英語背單詞系統(tǒng)。用戶使用此平臺(tái)進(jìn)行單詞學(xué)習(xí)、單詞背誦、單詞測試、加入生詞本等。相對(duì)于書本辭典操作來說,背單詞可以更簡便的直接的體現(xiàn)給用戶,而且使用方便,操作簡單。用戶作為系統(tǒng)的服務(wù)群體,按照自己的需求選擇詞庫進(jìn)行單詞學(xué)習(xí)等,按照自己的方式選擇所需背記單詞的數(shù)量。遇到有生僻的單詞可以加入生詞本方便以后的二次查找,節(jié)省時(shí)間,方便閱覽。</p>&
17、lt;p> 本系統(tǒng)要求主要實(shí)現(xiàn)以下功能模塊:</p><p> 用戶能夠選擇詞庫,導(dǎo)入詞庫;</p><p> 用戶能夠進(jìn)行單詞的學(xué)習(xí);</p><p> 用戶能夠進(jìn)行已學(xué)習(xí)過單詞的復(fù)習(xí),同時(shí)制定復(fù)習(xí)計(jì)劃;</p><p> 用戶能夠進(jìn)行單詞的測試;</p><p> 提供單詞的真人發(fā)音功能;<
18、/p><p> 提供生詞本功能,用戶可以隨時(shí)添加生詞。</p><p><b> 1.2研究意義</b></p><p> 以前人們用最簡單的辭典,在眾多的資料中翻閱、查找,費(fèi)時(shí)、費(fèi)力,而且應(yīng)用性非常差。設(shè)計(jì)這么一個(gè)背單詞系統(tǒng),使得用戶可以便捷,快速的進(jìn)行操作,同時(shí)也達(dá)到了穩(wěn)定,準(zhǔn)確的目的。基于Android的英語背單詞程序的設(shè)計(jì)可以進(jìn)一步擴(kuò)
19、大學(xué)習(xí)英語的途徑,讓廣大公眾能夠隨時(shí)隨地方便且快捷地認(rèn)識(shí)與記憶英語單詞,以提高自身的英語水平。本軟件提供從初次記憶單詞到熟記單詞的所有功能,幫助大家科學(xué)學(xué)習(xí)。當(dāng)您初次使用本軟件記憶單詞后,系統(tǒng)會(huì)自動(dòng)為您制定學(xué)習(xí)復(fù)習(xí)計(jì)劃,幫助您科學(xué)快速地完成記憶單詞的過程。軟件提供測試功能,幫助您自我檢測學(xué)習(xí)狀態(tài)。更好地發(fā)揮了Android技術(shù)對(duì)移動(dòng)互聯(lián)網(wǎng)的現(xiàn)實(shí)性作用。</p><p> 1.3研究現(xiàn)狀和發(fā)展趨勢</p&g
20、t;<p> 據(jù)市場研究公司IDC稱,2013年上季度Android手機(jī)全球份額達(dá)75%。成為最大智能手機(jī)系統(tǒng)。今年第一季度,全球Android智能手機(jī)出貨量上升至1.621億臺(tái),高于去年同期的9030萬臺(tái);市場份額為75%,高于去年同期的59.1%。其他操作系統(tǒng)的表現(xiàn)則要平穩(wěn)很多。Android越來越引起人們的關(guān)注和追捧。移動(dòng)通信和互聯(lián)網(wǎng)成為當(dāng)今世界發(fā)展最快、市場潛力最大、前景最誘人的兩大業(yè)務(wù),它們的增長速度都是任何預(yù)
21、測家未曾預(yù)料到的,所以移動(dòng)互聯(lián)網(wǎng)可以預(yù)見將會(huì)創(chuàng)造經(jīng)濟(jì)神話。移動(dòng)互聯(lián)網(wǎng)的優(yōu)勢決定其用戶數(shù)量龐大,截至2012年9月底,全球移動(dòng)互聯(lián)網(wǎng)用戶已達(dá)15億。</p><p> Android是一種以Linux為基礎(chǔ)的開放源碼操作系統(tǒng),采用Linux內(nèi)核,主要使用于便攜設(shè)備。開放手機(jī)聯(lián)盟(OHA)成員可以任意使用和修改安卓的SDK軟件包。系統(tǒng)的開源性使其具有良好的拓展性,一方面,為眾多移動(dòng)應(yīng)用開發(fā)者提供了良好的系統(tǒng)性平臺(tái),
22、有利于移動(dòng)應(yīng)用的集合;另一方面,終端廠商可以針對(duì)自身的特殊需要“定制化開發(fā)”。與此相比,盡管2010年2月,塞班基本完成開源工作,但由于代碼臃腫,用戶界面設(shè)計(jì)缺失,塞班的開源并無實(shí)際意義,錯(cuò)失發(fā)展良機(jī)。因此,基于Android的英語背單詞程序開發(fā),也是現(xiàn)代移動(dòng)互聯(lián)網(wǎng)時(shí)代下催生的人們生活中不可或缺的一個(gè)產(chǎn)物。</p><p> 我們認(rèn)為,安卓操作系統(tǒng)發(fā)展迅猛主要得益于免費(fèi)、開源和良好產(chǎn)業(yè)運(yùn)作策略,這三點(diǎn)為安卓在智
23、能手機(jī)市場贏得更多的發(fā)展機(jī)遇。系統(tǒng)的免費(fèi)讓更多的廠商加入,推動(dòng)了份額的上升;代碼的開源讓更多的開發(fā)者進(jìn)入應(yīng)用開發(fā);應(yīng)用的豐富吸引了更多用戶選擇,這也是谷歌值得眾多廠商學(xué)習(xí)的地方。此外,谷歌通過OHA聯(lián)合眾多廠商進(jìn)行系統(tǒng)研發(fā),不斷更新版本,將系統(tǒng)應(yīng)用推廣到更多的終端產(chǎn)品中,確保用戶體驗(yàn)持續(xù)改善。</p><p> 3G互聯(lián)網(wǎng)時(shí)代下,移動(dòng)應(yīng)用越來越多,Android 4.2.2更新包于2013年2月11日發(fā)布,未來
24、采用Android系統(tǒng)手機(jī)越來越多。不僅僅在于手機(jī),在任何移動(dòng)設(shè)備上,都可以采用Android開發(fā)移植到終端設(shè)備上,例如電視、冰箱、空調(diào)、洗衣機(jī)等。將這些設(shè)備計(jì)入互聯(lián)網(wǎng),我們可以通過手機(jī)實(shí)時(shí)知道各個(gè)設(shè)備的狀態(tài),也可以控制它們工作??傊?,Android 將帶給我們更加智能、便捷、現(xiàn)代的生活。從而,Android應(yīng)用的開發(fā),將會(huì)越來越龐大,需求將會(huì)越來越豐富。開發(fā)英語背單詞手機(jī)軟件和其他應(yīng)用將會(huì)越來越普遍,Android將會(huì)越來越壯大。&l
25、t;/p><p> 2. 平臺(tái)與開發(fā)工具</p><p> 2.1 開發(fā)平臺(tái)介紹</p><p> 本設(shè)計(jì)采用windows 作為開發(fā)平臺(tái),由于windows系列操作系統(tǒng)做為市場份額最大的PC操作系統(tǒng),無論是用戶數(shù)還是基于windows平臺(tái)應(yīng)用數(shù)都是遙遙領(lǐng)先的。大多數(shù)開發(fā)者都會(huì)選擇此平臺(tái)作為開發(fā)平臺(tái),而且很多應(yīng)用在windows 平臺(tái)提供了的相應(yīng)的開發(fā)工具,如Ec
26、lipse、QT等。雖然大多數(shù)用戶很樂于將 Eclipse 當(dāng)作 Java 集成開發(fā)環(huán)境(IDE)來使用,但是 Eclipse 的目標(biāo)卻不僅僅這樣。Eclipse 這個(gè)開發(fā)工具還包括插件的開發(fā)環(huán)境(Plug-in Development Environment,PDE),而這個(gè)組件主要是針對(duì)希望擴(kuò)展 Eclipse 的人來的,因?yàn)镋clipse允許他們構(gòu)建出與 Eclipse 開發(fā)環(huán)境無縫集成的工具。因?yàn)?Eclipse 中的所有東西都
27、是插件存在,對(duì)于 Eclipse 提供的插件,并且給用戶提供一致及統(tǒng)一的集成開發(fā)環(huán)境來說,所有的軟件開發(fā)人員都具有一樣的發(fā)揮場所。</p><p> Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Kit,JDK
28、)。 雖然大多數(shù)用戶很樂于將 Eclipse 當(dāng)作 Java 集成開發(fā)環(huán)境(IDE)來使用,但 Eclipse 的目標(biāo)卻不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及
29、給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。本畢設(shè)安裝的是Android 開發(fā)插件。</p><p> 2.2 開發(fā)語言與開發(fā)環(huán)境</p><p> Android的上層應(yīng)用程序是用Java語言開發(fā),同時(shí)還需要基于Dalvik虛擬機(jī),所以,Google公司推薦使用主流的Java繼承開發(fā)環(huán)境Eclipse。只有Eclipse還不夠,因?yàn)槭鞘褂肑ava語言
30、進(jìn)行開發(fā),還應(yīng)該有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的應(yīng)用程序開發(fā)和Java開發(fā)有較大區(qū)別的,所以還需要有Google提供的Android SDK。同時(shí),還需要在Eclipse安裝ADT,為Android開發(fā)提供開發(fā)工具的升級(jí)或者變更,是Eclipse下開發(fā)工具的升級(jí)下載的工具。eclipse裝有android開發(fā)插件,從而運(yùn)行Android 模擬
31、器 ,模擬Android智能手機(jī)。</p><p> 簡言之,需要以下軟件,才能搭建Android開發(fā)環(huán)境,從而進(jìn)行Android應(yīng)用程序的開發(fā)。運(yùn)行開發(fā)環(huán)境如表2-1所示:</p><p> 表2-1 運(yùn)行開發(fā)環(huán)境</p><p> 3. 英語背單詞軟件總體設(shè)計(jì)與需求分析</p><p> 3.1 Android四大組件簡介<
32、/p><p><b> Activity</b></p><p> Activity是Android應(yīng)用程序和用戶進(jìn)行交互的窗口,它是Android系統(tǒng)構(gòu)造中最基本的一種,Activity要為各界面的狀態(tài)進(jìn)行保持,它做許多的持久化事情,良好的管理生命周期和一些要跳轉(zhuǎn)的邏輯。一個(gè)Activity一般展現(xiàn)一個(gè)用戶界面。比如,一個(gè)Activity可以為一個(gè)用戶展示選擇的菜單
33、列表或者展示出一些圖片和圖片的標(biāo)題。對(duì)于一個(gè)消息服務(wù)應(yīng)用程序,它可能包括一個(gè)顯示聯(lián)系人列表的界面,一個(gè)編寫信息的界面,和其它的一些查看信息及修改應(yīng)用程序的設(shè)置而用到的Activity。雖然這些Activity共同工作,一起構(gòu)成了一個(gè)應(yīng)用完整的程序,但是每個(gè)Activity都是相對(duì)獨(dú)立的。</p><p><b> Service</b></p><p> Serv
34、ice在后臺(tái),為Activity服務(wù),封裝好一些完整的功能邏輯,并接受上面的指令,然后完成相關(guān)的事務(wù)處理,使用中要定義好接受的Intent提供同步及異步的接口。Service雖然沒有用戶的界面,但是Service會(huì)在后臺(tái)一直運(yùn)行。比如,Service可能會(huì)在用戶處理其它事務(wù)時(shí),同時(shí)播放音樂,或者把網(wǎng)絡(luò)上的數(shù)據(jù)獲取下來,或者進(jìn)行一些運(yùn)算,然后把計(jì)算的結(jié)構(gòu)提供給Activity,讓它展示給用戶。使用中,Service都要繼承類Serivce
35、。和Activity等其它組件一樣,Service運(yùn)行在應(yīng)用程序的主線程中。因此Service不能讓其它組件或者用戶界面阻塞,這個(gè)通常就要為這些Service類增加線程執(zhí)行耗時(shí)的任務(wù)。</p><p> Broadcast Receiver</p><p> Broadcast Receiver是Android提供的第三方應(yīng)用數(shù)據(jù)的訪問方案,它可以派生出Content Provider
36、這個(gè)類,然后對(duì)外提供數(shù)據(jù),它可以像數(shù)據(jù)庫一樣進(jìn)行選擇排序,它屏蔽內(nèi)部的細(xì)節(jié),并對(duì)外提供了一個(gè)統(tǒng)一接口模型,這很好的簡化上層應(yīng)用,它對(duì)數(shù)據(jù)整合提供了更方便的方式。Broadcase Receiver并不執(zhí)行任何的任務(wù),它僅是接受并響應(yīng)廣播的通知的一類組件。而大部分的廣播的通知是由系統(tǒng)產(chǎn)生,比如改變時(shí)區(qū)時(shí),電池電量低時(shí),用戶選擇一幅圖片或用戶換了語言首時(shí)。對(duì)于應(yīng)用程序,也同樣可以良好的發(fā)送廣播通知,比如通知其他的應(yīng)用程序某些數(shù)據(jù)已經(jīng)下載到設(shè)
37、備上來并且可以使用。</p><p> Content Provider </p><p> 接受一種或多種的Intent作為觸發(fā)事件,對(duì)于接受到的相關(guān)消息,進(jìn)行一些簡單處理,轉(zhuǎn)換成Notification,這統(tǒng)一了Android系統(tǒng)的事件廣播模型。對(duì)于應(yīng)用程序可以通過ContentProvider來訪問其它的應(yīng)用程序中的一些私有的數(shù)據(jù),這即是Android系統(tǒng)中提供的一種標(biāo)準(zhǔn)的共享數(shù)
38、據(jù)的機(jī)制。對(duì)于共享的數(shù)據(jù)可存儲(chǔ)在系統(tǒng)的文件中、SQLite中或者其它的媒體中。ContentProvider實(shí)現(xiàn)類擴(kuò)展自ContentProvider這個(gè)類,并通過實(shí)現(xiàn)此類的一組標(biāo)準(zhǔn)接口,使其它的應(yīng)用程序能存取它控制的一些數(shù)據(jù)。但是應(yīng)用程序并不是直接調(diào)用ContentProvider中的一些方法,而是間接的,通過類ContentResolver來實(shí)現(xiàn)。ContentResolver這個(gè)類能夠與任何的一個(gè)ContentProvider進(jìn)行
39、通信,它能與ContentProvider良好的合作管理進(jìn)程間通信。</p><p> 3.2 Android 手機(jī)應(yīng)用軟件的UI設(shè)計(jì)</p><p> 由于Android系統(tǒng)是一款手機(jī)操作系統(tǒng),所以基于此系統(tǒng)的應(yīng)用開發(fā)也是基于手機(jī)屏幕大小的。手機(jī)屏幕大小不一,但要求軟件能夠適應(yīng)不同大小的手機(jī)屏幕,也就是界面能夠自動(dòng)適應(yīng),而且屏幕能夠翻轉(zhuǎn)(基于重力感應(yīng)使屏幕畫面自動(dòng)水平和垂直切換)。A
40、ndroid 界面由兩大基本組件組成:即容器和控件。一個(gè)窗口由一個(gè)基本的容器組成, 容器中可以放容器或者控件,每一個(gè)容器或者控件都有大小、長寬等屬性。</p><p> 在一個(gè)Android 應(yīng)用中,一個(gè)Activity(Activity是Android中最常用也是最基本的組件)通常就是一個(gè)單獨(dú)的屏幕,每一個(gè)Activity都被實(shí)現(xiàn)為一個(gè)獨(dú)立的類,并且繼承Activity這個(gè)子類。Activity提供了與用戶交
41、互的可視化界面。創(chuàng)建一個(gè)Activity一般繼承Activity父類。覆蓋Activity的onCreate()方法,在該方法中調(diào)用setOnContextView()方法來展示要顯示的視圖。</p><p> 整個(gè)Android 項(xiàng)目劃分不同文件在不同文件夾中,android使用xml文件作為系統(tǒng)的布局文件,android 資源文件和 文件夾如圖3-1所示:</p><p> 圖3-
42、1 Android項(xiàng)目文件結(jié)構(gòu)</p><p> 要想控制手機(jī)界面的顯示方式,則必須使用布局這一概念。布局就像容器,里面可以裝下很多控件。布局里面還可以套用其他的布局。這樣就可以實(shí)現(xiàn)界面的多樣化以及設(shè)計(jì)的靈活性。 (1) LinearLayout(線性)布局: 線性版面配置,在這個(gè)標(biāo)簽中,所有元件都是按由上到下的排隊(duì)排成的。包括垂直線性布局和水平線性布局。</p><p> (
43、2) RelativeLayout(相對(duì)布局)就是以相對(duì)的方式定位布局,允許子元素指定他們相對(duì)于其它元素或父元素的位置(通過ID指定)。相對(duì)布局示例如圖3-2所示:</p><p> 圖3-2 Android相對(duì)布局</p><p> (3) FrameLayout(幀布局)是最簡單的一個(gè)布局對(duì)象。是一個(gè)框架布局樣式,可以用include標(biāo)簽載入定義的另一個(gè)layout文件,所有的子元
44、素將會(huì)固定在屏幕的左上角;你不能為FrameLayout中的一個(gè)子元素指定一個(gè)位置。后一個(gè)子元素將會(huì)直接在前 一個(gè)子元素之上進(jìn)行覆蓋填充,把它們部份或全部擋?。ǔ呛笠粋€(gè)子元素是透明的)。 (4) TableLayout(表格布局) 是一種類似表格的布局,這種布局會(huì)把包含的元素以行和列進(jìn)行排列。表格的列數(shù)為所有行中的最大列數(shù);每一行可以是一個(gè)Table Row布局對(duì)象,也可以是普通的View(視圖)對(duì)象,TableRow里面每一
45、個(gè)元素占一列TableLayout總列數(shù)由列數(shù)最多的那一行決定。</p><p> 因此,要想實(shí)現(xiàn)各種顯示效果,可根據(jù)不同的界面需求,選用不同的布局方法。</p><p> 3.3 英語背單詞軟件需求分析與性能分析</p><p> 技術(shù)可行性上,Android是一個(gè)成熟強(qiáng)大的移動(dòng)操作系統(tǒng),而且是一個(gè)開源的系統(tǒng),市場占有率很高。Android應(yīng)用是用java語
46、言,雖然版本有好多,但一般會(huì)向下兼容,用Eclipse + ADT來創(chuàng)建應(yīng)用程序,Android提供開發(fā)的足夠的接口API讓開發(fā)者開發(fā)功能強(qiáng)大的應(yīng)用程序。 </p><p> 經(jīng)濟(jì)可行性上,該應(yīng)用程序不需要服務(wù)器端,不需要與別的應(yīng)用進(jìn)行交互,只需要本地Android智能機(jī)設(shè)置好,用戶學(xué)習(xí)內(nèi)容自動(dòng)保存,而且復(fù)習(xí)計(jì)劃可自行設(shè)置提醒。占用內(nèi)存小,用戶電池消耗小。所以該方案是可行的。</p><p&
47、gt; 操作可行性上,利用現(xiàn)有的windows系統(tǒng)進(jìn)行開發(fā)。使用Eclipse作為開發(fā)工具以及使用Sqlite作為數(shù)據(jù)庫,通過模擬器進(jìn)行程序調(diào)試,然后通過android智能機(jī)進(jìn)行功能測試。整個(gè)過程平臺(tái)廣泛,皆可實(shí)現(xiàn)。</p><p> 系統(tǒng)性能分析方面要求程序響應(yīng)速度快、安全性高、信息處理速度快。</p><p> 3.4 英語背單詞軟件操作流程圖與數(shù)據(jù)庫設(shè)計(jì)</p>
48、<p> 3.4.1 英語背單詞軟件操作流程圖</p><p> 本英語背單詞軟件的操作流程圖如圖3-3所示:</p><p> 圖3-3 操作流程圖</p><p> 3.4.2 數(shù)據(jù)庫的創(chuàng)建與設(shè)計(jì)</p><p> 當(dāng)前android平臺(tái)采用的是sqlite數(shù)據(jù)庫。SQLite數(shù)據(jù)庫功能強(qiáng)大,使用方便。</p&g
49、t;<p> 本系統(tǒng)使用了SQLite數(shù)據(jù)庫來保存英文單詞信息。在Android中創(chuàng)建和打開一個(gè)數(shù)據(jù)庫都可以使用openOrCreateDatabase方法來實(shí)現(xiàn),本系統(tǒng)創(chuàng)建了名為“wordroi d.db”的數(shù)據(jù)庫,并返回一個(gè)SQLiteDatabase對(duì)象db如下:</p><p> SQLiteDatabase db=SQLiteDatabase.openOrCreateDatabase(
50、 DB_NAME, null);</p><p> DB_NAME為數(shù)據(jù)庫的儲(chǔ)存地址:"data/data/wordroid.model/databases/wordroid.db"</p><p> 創(chuàng)建表通過execSQL方法來執(zhí)行一條SQL語句。本系統(tǒng)創(chuàng)建了一個(gè)名為sql的表。具體代碼如下:</p><p> String sql=&
51、quot;CREATE TABLE " + table + " ( ID text not null, SPELLING text not null , MEANNING text not null, PHONETIC_ALPHABET text, LIST text not null" + ");";</p><p> db.execSQL(sql);<
52、/p><p> 向表中添加一條數(shù)據(jù)使用insert方法來添加數(shù)據(jù)即單詞。具體實(shí)現(xiàn)如下:</p><p> db.insert(table, null, values);</p><p> 通過使用update方法來修改表中數(shù)據(jù),具體實(shí)現(xiàn)如下:</p><p> db.update(table, values, whereClause, w
53、hereArgs);</p><p> 通過使用delete方法從表中刪除數(shù)據(jù)。關(guān)閉數(shù)據(jù)庫很重要,經(jīng)常容易忘記。直接使用SQLiteDatabase的close方法。</p><p> 在Android中查詢數(shù)據(jù)是通過Cursor類實(shí)現(xiàn)的,使用SQLiteDatabase.query()方法時(shí),會(huì)得到一個(gè)Cursor對(duì)象,Cursor指向的就是每一條數(shù)據(jù)。注意Android使用Curs
54、or類返回一個(gè)需要的值,Cursor作為一個(gè)指針從數(shù)據(jù)庫查詢返回結(jié)果,使用Cursor允許Android更有效地管理它們需要的行和列,運(yùn)用cursor.moveToFirst()是對(duì)Cursor指向的位置進(jìn)行操作:移到第一行。</p><p> wordroid.db文件放在Eclipse Android工程中的res文件夾下的raw目錄中,通過使用getResources().openRawResource方
55、法獲得raw目錄中資源的InputStre am對(duì)象,然后將該InputStream對(duì)象中的數(shù)據(jù)寫入手機(jī)內(nèi)存或SD卡的目錄中相應(yīng)文件中。如圖3-4所示:</p><p> 圖3-4 數(shù)據(jù)庫文件</p><p> 在wordroid數(shù)據(jù)庫中主要包含以下幾個(gè)表格:</p><p><b> 表BOOKS </b></p><
56、;p> 該表記錄了詞庫的基本信息,包括詞庫的ID,詞庫的名稱,加入時(shí)間,list數(shù)量,單詞數(shù)量。如下表3-1所示:</p><p> 表3-1 BOOKS表</p><p> BOOKS表具體內(nèi)容如圖3-5所示:</p><p> 圖3-5 表BOOKS</p><p><b> 表book1</b>&l
57、t;/p><p> 該表記錄了單詞的基本信息,包括單詞的編號(hào),單詞的拼寫,單詞的意思,單詞音標(biāo),所屬list. 如下表3-2所示:</p><p> 表3-2 book1表</p><p> 表book1具體內(nèi)容如圖3-6所示:</p><p> 圖3-6表book1</p><p><b> 表boo
58、k2</b></p><p> 該表記錄了單詞的基本信息,包括單詞的編號(hào),單詞的拼寫,單詞的意思,單詞音標(biāo),所屬list。見表3-2。</p><p> 表book2具體內(nèi)容如圖3-7所示:</p><p> 圖3-7表book2</p><p><b> 表book3</b></p>
59、<p> 該表記錄了單詞的基本信息,包括單詞的編號(hào),單詞的拼寫,單詞的意思,單詞音標(biāo),所屬list。 見表3-2。</p><p> 表book3具體內(nèi)容如圖3-8所示:</p><p> 圖3-8表book3</p><p><b> 表PLAN</b></p><p> 該表記錄了復(fù)習(xí)計(jì)劃的基本信
60、息,包括詞庫的編號(hào),所在list,已學(xué)習(xí)list,學(xué)習(xí)時(shí)間,復(fù)習(xí)次數(shù),復(fù)試時(shí)間,最佳得分,是否復(fù)習(xí)。 如下表3-3所示。</p><p> 表3-3 PLAN表</p><p> 表PLAN具體內(nèi)容如圖3-9所示:</p><p><b> 圖3-9表PLAN</b></p><p> 4. 系統(tǒng)各個(gè)模塊的具體實(shí)
61、現(xiàn)</p><p> 4.1 啟動(dòng)模塊的實(shí)現(xiàn)</p><p> 啟動(dòng)界面是系統(tǒng)的第一個(gè)界面,目的是給用戶一種直觀的感受,給用戶一種良好的感覺。啟動(dòng)界面的布局文件為layout文件夾里的login.xml,由一個(gè)Linearlayout(線性布局) 構(gòu)成,里面包含一個(gè)ImageView (圖片控件)并填充整個(gè)手機(jī)界面,考慮到橫豎屏切換和屏幕大小,在res的drawable-hdpi、dr
62、awable-ldpi和drawa ble-mdpi三個(gè)文件夾分別放三種尺寸圖片,分辨路為480x800、800x480、320x460并且啟動(dòng)畫面要覆蓋整個(gè)手機(jī)屏幕,啟動(dòng)界面如圖4-1所示:</p><p><b> 圖4-1 啟動(dòng)界面</b></p><p> 啟動(dòng)界面最主要的工作時(shí)設(shè)置畫面延時(shí),并且能夠在畫面顯示的3秒內(nèi)對(duì)HOME鍵、返回鍵,做出相應(yīng),并且可
63、以支持橫豎屏切換。實(shí)現(xiàn)延時(shí)效果主要使用線程來實(shí)現(xiàn)。當(dāng)android程序啟動(dòng)時(shí),首先由AndroidMainfest.xml系統(tǒng)主配置文件來查找第一個(gè)要顯示界面(第一個(gè)要顯示的Activity必須要包含在<intent-filter>與</intent-filter>之間)</p><p><b> 代碼如下:</b></p><p> p
64、rotected void onCreate(Bundle savedInstanceState) {</p><p> // TODO Auto-generated method stub</p><p> this.setTitle("安卓背單詞--Wordroid");</p><p> super.onCreate(savedIns
65、tanceState);</p><p> this.setContentView(R.layout.login);</p><p> LayoutInflater mInflater = LayoutInflater.from(this);</p><p> myView = mInflater.inflate(R.layout.main, null);&l
66、t;/p><p> Thread thread = new Thread(){</p><p> public void run(){</p><p> try {Thread.sleep(2000);</p><p> Message m = new Message();</p><p><b> m
67、.what=1;</b></p><p> Main.this.mHandler.sendMessage(m);</p><p> } catch (InterruptedException e1) {</p><p> // TODO Auto-generated catch block</p><p> e1.prin
68、tStackTrace();}}};thread.start();</p><p> OperationOfBooks OOB = new OperationOfBooks();</p><p> SharedPreferences setting = getSharedPreferences("wordroid.model_preferences", MODE_P
69、RIVATE);</p><p> OOB.setNotify(setting.getString("time", "18:00 下午"),Main.this);</p><p> File dir = new File("data/data/wordroid.model/databases"); </p>&l
70、t;p> if (!dir.exists()) dir.mkdir(); </p><p> if (!(new File(SqlHelper.DB_NAME)).exists()) { </p><p> FileOutputStream fos;</p><p> try {fos = new FileOutputStream(SqlHelper.
71、DB_NAME);</p><p> byte[] buffer = new byte[8192]; </p><p> int count = 0; </p><p> InputStream is = getResources().openRawResource( </p><p> R.raw.wordorid); </p
72、><p> while ((count = is.read(buffer)) > 0) { </p><p> fos.write(buffer, 0, count); }</p><p> fos.close(); is.close(); </p><p> } catch (Exception e) {</p>&
73、lt;p> // TODO Auto-generated catch block</p><p> e.printStackTrace();} }</p><p> SharedPreferences settings=getSharedPreferences(SETTING_BOOKID, 0);</p><p> DataAccess.bookID
74、=settings.getString(BOOKNAME, "");</p><p> OOB.UpdateListInfo(Main.this);</p><p> initWidgets();}</p><p> 登錄界面由SplashActivity.java類負(fù)責(zé)顯示。然后根據(jù)當(dāng)前類要顯示布局文件文件來繪制整個(gè)界面。隨之,啟動(dòng)延時(shí)線
75、程,采用循環(huán),循環(huán)一次線程休眠100ms(防止系統(tǒng)卡頓)。按下HOME鍵則返回手機(jī)主界面,延時(shí)暫停,再點(diǎn)擊啟動(dòng)程序時(shí)延時(shí)線程繼續(xù)運(yùn)行,直到3s后,跳到下一個(gè)界面。當(dāng)按下返回鍵時(shí),程序?qū)㈥P(guān)閉。</p><p> 4.2 用戶信息模塊的實(shí)現(xiàn)</p><p> 該界面的布局文件為main.xml,整個(gè)界面直觀明了的展示了該系統(tǒng)的主要功能以及用戶學(xué)習(xí)進(jìn)度。界面用一張圖片作為背景,在界面左上角顯
76、示兩個(gè)圖片按鈕(ImageButton):刪除按鈕與重置按鈕,組成一個(gè)線性布局。在界面中間上方處顯示下拉列表組件(Spinner),給用戶提供詞庫的選擇:GRE紅寶書(上),GRE紅寶書(中),GRE紅寶書(下)以及導(dǎo)入新詞庫。在界面中間布局了三個(gè)文本框(Textview)和兩個(gè)使用進(jìn)度條(ProgressBar),組成一個(gè)線性布局。一個(gè)文本框用來顯示用戶學(xué)習(xí)信息:詞庫名稱,總詞匯量與創(chuàng)建時(shí)間;兩個(gè)使用進(jìn)度條分別顯示已學(xué)習(xí)list的數(shù)量
77、與已復(fù)習(xí)list的數(shù)量。在界面的的底部布局了四個(gè)按鈕(Button):學(xué)習(xí),復(fù)習(xí),測試,生詞本。組成了一個(gè)線性布局。這些控件在一起采用相對(duì)布局,可以使這些控件的位置相對(duì)擺放,靠在父容器下方,不至于零散。用戶信息主界面如圖4-2所示:</p><p> 圖4-2 用戶信息主界面</p><p> 上文提到了該界面給用戶提供詞庫選擇的下拉列表組件(Spinner),詞庫選擇則要為下拉列表定
78、義一個(gè)適配器,這里就用到前面定義的books;同時(shí)為適配器設(shè)置下拉列表下拉時(shí)的菜單樣式;最后將適配器(adapter)添加到下拉列表上(pickBook)。代碼如下:</p><p> ArrayAdapter< CharSequence > adapter = new ArrayAdapter< CharSequence >(this, android.R.layout.simple_
79、spinner_item, books);</p><p> adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);</p><p> pickBook.setAdapter(adapter);</p><p> 事件pickBook.setOnItemSe
80、lectedListener(new OnItemSelectedListener()為下拉列表設(shè)置各種事件的響應(yīng),這個(gè)事響應(yīng)菜單被選中。</p><p> 同時(shí)該界面initWidgets() 實(shí)現(xiàn)了桌面小插件的設(shè)置,把用戶生詞本的內(nèi)容直接呈現(xiàn),方便用戶的瀏覽。對(duì)于界面左上角的兩個(gè)刪除與重置按鈕,通過 onClick (View v)事件,頁面上顯示一個(gè)(對(duì)話框)dialog,dialog的樣式設(shè)置由res,
81、文件夾下的values文件夾dialogStyle.xml負(fù)責(zé),界面顯示時(shí),先生成一個(gè)dialog對(duì)象,然后顯示這個(gè)dialog。</p><p> 詞庫由wordroid.db數(shù)據(jù)庫里的表Book1, Book2, Book3組成,通過this.set ListAdapter(new ArrayAdapter<String>(this, R.layout.file_row, fileNames))
82、;實(shí)現(xiàn)詞庫的導(dǎo)入操作。相關(guān)代碼如下:</p><p> super.onCreate(savedInstanceState);</p><p> this.setTitle("導(dǎo)入新詞庫");</p><p> this.setContentView(R.layout.import_book);</p><p>
83、setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);</p><p> File f = new File("/sdcard/");</p><p> File[] files=f.listFiles();</p><p> fileNames = new St
84、ring[files.length];</p><p> for (int i=0;i<fileNames.length;i++){</p><p> fileNames[i]=files[i].getName();}</p><p> this.setListAdapter(new ArrayAdapter<String>(this, R.
85、layout.file_row, fileNames));</p><p> 4.3 用戶單詞學(xué)習(xí)模塊的實(shí)現(xiàn)</p><p> 該界面的布局文件為studyword_main.xml和studyword.xml。studyword_main.</p><p> xml文件里顯示兩個(gè)文本框,構(gòu)成一個(gè)框架布局FrameLayout。分別為未學(xué)習(xí)過的LIST和所有
86、的LIST;同時(shí)顯示各項(xiàng)LIST列表。用戶單詞學(xué)習(xí)列表界面如圖4-3所示:</p><p> 圖4-3 用戶單詞學(xué)習(xí)列表界面</p><p> Studyword.xml布局文件界面上方布局了一個(gè)文本框:單詞記憶。界面中間顯示一個(gè)圖片按鈕和兩個(gè)文本框,構(gòu)成一個(gè)線性布局。圖片按鈕為發(fā)音標(biāo)示,按鈕的屬性設(shè)置為@android:drawable/btn_default,文本框分別為拼寫(sp
87、elling)與單詞解釋(info)。界面底部顯示三個(gè)按鈕,構(gòu)成一個(gè)線性布局。按鈕分別為:上一個(gè),加入生詞本,下一個(gè)。用戶單詞學(xué)習(xí)記憶界面如圖4-4所示:</p><p> 圖4-4 用戶單詞學(xué)習(xí)記憶界面</p><p> 重復(fù)加入生詞本以后會(huì)提示:生詞本中已包含這個(gè)單詞;強(qiáng)制退出時(shí)會(huì)提示學(xué)習(xí)未完成,進(jìn)行選擇。</p><p> 該學(xué)習(xí)模塊的機(jī)器發(fā)音功能通過T
88、TS引擎實(shí)現(xiàn),TTS即TextToSpeech,將所指定的文本轉(zhuǎn)成不同語言音頻輸出。如果用戶手機(jī)支持TTS發(fā)音功能,首先設(shè)置發(fā)音語言tts.setLanguage(loc),判斷語言可用后,使用Speak()方法可以直接在應(yīng)用程序中實(shí)現(xiàn)語音功能tts.speak(list.get(currentnum).getSpelling(),TextToSpeech.</p><p> QUEUE_ADD,null)。發(fā)
89、音完成后,回收TTS即可,當(dāng)確定應(yīng)用程序不再需要TTS的相關(guān)功能后,可以在Activity的OnDestroy()方法中調(diào)用super.onDestroy()釋放當(dāng)前TTS實(shí)體所占用的資源。相關(guān)代碼如下:</p><p> public class TTS {</p><p> ...........</p><p> private TextToSpeech
90、.OnInitListener ttsInitListener = new TextToSpeech.OnInitListener() {</p><p><b> @Override</b></p><p> public void onInit(int status){</p><p> Locale loc = new Locale
91、("us", "", "");</p><p> if (tts.isLanguageAvailable(loc) == TextToSpeech.LANG_AVAILABLE){</p><p> tts.setLanguage(loc);</p><p> } tts.setOnUtteran
92、ceCompletedListener(ttsUtteranceCompletedListener);}</p><p> 4.4 用戶單詞復(fù)習(xí)模塊的實(shí)現(xiàn)</p><p> 該界面的布局文件為reviewlayout.xml。界面的上方布局了一個(gè)文本框:單詞復(fù)習(xí)。界面中間顯示一個(gè)圖片按鈕和兩個(gè)文本框,構(gòu)成線性布局嵌套。圖片按鈕為發(fā)音標(biāo)示,按鈕的屬性設(shè)置為@android:drawabl
93、e/btn_default,文本框分別為拼寫(spelling)與單詞解釋(info)。界面底部顯示三個(gè)按鈕,另有兩個(gè)隱藏按鈕,構(gòu)成一個(gè)線性布局。按鈕分別為:加入生詞本,我記得,不記得了,記對(duì)了,記錯(cuò)了。</p><p> 用戶單詞復(fù)習(xí)界面如圖4-5所示:</p><p> 圖4-5 用戶單詞復(fù)習(xí)界面</p><p> 按下我記得按鈕文本框顯示單詞的解釋,界面
94、下方顯示“記對(duì)了”“記錯(cuò)了”兩個(gè)按鈕,按下記對(duì)了進(jìn)入下一個(gè)單詞的復(fù)習(xí)。強(qiáng)制退出時(shí)會(huì)提示復(fù)習(xí)未完成,進(jìn)行選擇。</p><p> 該單詞復(fù)習(xí)模塊首先需要對(duì)已學(xué)習(xí)過的list進(jìn)行數(shù)據(jù)存儲(chǔ),這里使用Activity類的getSharedPreferences方法獲得SharedPreferences對(duì)象,其中存儲(chǔ)key-value的文件的名稱由getSharedPreferences方法的第一個(gè)參數(shù)指定;使用該接口的
95、edit獲得SharedPreferences.Editor對(duì)象,再通過SharedPreferences.Editor接口的putString方法保存數(shù)據(jù)。進(jìn)入復(fù)習(xí)界面后,則通過getString讀取保存的list。用戶在復(fù)習(xí)選擇時(shí)通過setVisibility()實(shí)現(xiàn)各個(gè)按鈕控件的可見與否。復(fù)習(xí)完成時(shí)生成一個(gè)dialog對(duì)象,然后顯示這個(gè)dialog。相關(guān)核心代碼如下:</p><p> private v
96、oid UpdateView() {</p><p> if (currentnum<list.size()){</p><p> SharedPreferences setting = getSharedPreferences("wordroid.model_preferences", MODE_PRIVATE);</p><p>
97、 if(setting.getBoolean("iftts", false)){</p><p> Thread thread =new Thread(new Runnable(){</p><p> public void run(){</p><p><b> try {</b></p><p&
98、gt; Thread.sleep(500);</p><p> tts.speak(list.get(currentnum).getSpelling(),TextToSpeech.QUEUE_FLUSH,</p><p><b> null);} </b></p><p> ...........</p><p>
99、; public void onClick(DialogInterface dialog, int whichButton) {</p><p> tts.shutdown();</p><p><b> finish();</b></p><p> Intent intent = new Intent();</p>&l
100、t;p> intent.setClass(Review.this, ReviewMain.class);</p><p> startActivity(intent);}}).create();</p><p> 4.5 用戶單詞測試模塊的實(shí)現(xiàn)</p><p> 用戶單詞測試界面的布局文件為test_list_item.xml,test_list.xm
101、l和test.xml。test_list.xml布局文件界面顯示了一個(gè)文本框和一個(gè)使用列表(ListView),文本框?yàn)檫x擇測試單元,使用列表控件包含所選詞庫所有的list并顯示最高正確率。點(diǎn)擊某個(gè)list后進(jìn)入test.xml布局文件界面,該界面的上方布局了一個(gè)文本框:單詞測試。界面中間顯示一個(gè)文本框和一個(gè)單選鈕組(RadioGroup),構(gòu)成線性布局。文本框的屬性設(shè)置為android:attr/textAppearanceSmall
102、,內(nèi)容為單詞與單詞的拼寫;單選鈕組包含四個(gè)單選框(RadioButton),分別為單詞的可選解釋。界面底部顯示三個(gè)按鈕,構(gòu)成一個(gè)線性布局。按鈕分別為:下一個(gè),結(jié)束,加入生詞本。用戶單詞測試界面如圖4-6所示:</p><p> 圖4-6 用戶單詞測試界面</p><p> 用戶選擇單選框后系統(tǒng)進(jìn)行判斷,錯(cuò)誤給出正確解釋,正確進(jìn)入下一個(gè)。</p><p> 該單
103、詞測試模塊通過單選鈕監(jiān)聽事件setOnCheckedChangeListener()判斷組件是否被選中,給RadioGroup設(shè)置事件監(jiān)聽,然后用switch函數(shù)對(duì)用戶所選單選項(xiàng)判斷,最后通過DisplayToast事件進(jìn)行正確與否的顯示。相關(guān)核心代碼如下:</p><p> RadioGroup.OnCheckedChangeListener() {</p><p> public
104、void onCheckedChanged(RadioGroup group, int checkedId) {</p><p> if (isCheck) {</p><p> isCheck = false;</p><p> switch (rightAns) {</p><p><b> case 0:</b&
105、gt;</p><p> if ( checkedId == meaning0.getId() ) {</p><p><b> score++;</b></p><p> DisplayToast ("正確");</p><p><b> } else {</b><
106、;/p><p> DisplayToast("錯(cuò)誤,正確答案是 " + allList.get(opt[0]).getMeanning());}</p><p><b> break;</b></p><p><b> case 1:</b></p><p> if ( ch
107、eckedId == meaning1.getId() ) {</p><p><b> score++;</b></p><p> DisplayToast("正確");</p><p><b> } else {</b></p><p> DisplayToast(&
108、quot;錯(cuò)誤,正確答案是 " + allList.get(opt[1]).getMeanning() );}break;}</p><p> 4.6 生詞本模塊的實(shí)現(xiàn)</p><p> 生詞本界面的布局文件為attention.xml。attention.xml布局文件界面顯示了一個(gè)文本框和一個(gè)使用列表(ListView),文本框?yàn)樯~本,使用列表控件包含用戶所加入生詞本
109、中的生詞,顯示單詞與單詞解釋。當(dāng)選擇某生詞,顯示編輯該單詞與從生詞本中刪除選項(xiàng)。按下編輯該單詞時(shí),進(jìn)入編輯生詞本界面,該界面布局文件為editword.xml。界面上方顯示了兩個(gè)文本框和兩個(gè)輸入文本組件(EditText),一個(gè)文本框:單詞與一個(gè)輸入文本組件(單詞拼寫)構(gòu)成線性布局,另一個(gè)文本框:中文與一個(gè)輸入文本組件(中文解釋)構(gòu)成線性布局;界面中間布局了兩個(gè)按鈕:確定和取消。生詞本界面與編輯生詞本界面分別如圖4-7,圖4-8所示:&
110、lt;/p><p> 圖4-7 生詞本界面 圖4-8 編輯生詞本界面</p><p> 該生詞本模塊通過onCreateOptionsMenu(Menu menu)實(shí)現(xiàn)按下menu鍵后進(jìn)行添加新單詞,onOptionsItemSelected(MenuItem item)為單詞添加操作,相關(guān)代碼如下:</p><p> publi
111、c boolean onCreateOptionsMenu(Menu menu) {</p><p> public boolean onOptionsItemSelected(MenuItem item) {</p><p> switch(item.getItemId()){</p><p> case MENU_ADD:{</p><
112、p> Intent intent = new Intent();</p><p> Bundle bundle = new Bundle();</p><p> bundle.putString("action", "add");</p><p> intent.putExtras(bundle);</p&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文范文——基于android的背單詞軟件設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)專業(yè)畢業(yè)論文(考勤系統(tǒng)軟件設(shè)計(jì))
- android平臺(tái)天氣預(yù)報(bào)軟件設(shè)計(jì)與實(shí)現(xiàn) 畢業(yè)論文
- 基于android的在線訂餐系統(tǒng)-計(jì)算機(jī)畢業(yè)論文
- 計(jì)算機(jī)軟件設(shè)計(jì)畢業(yè)論文--企業(yè)管理系統(tǒng)
- 基于android平臺(tái)的聊天軟件設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文
- 計(jì)算機(jī)專業(yè)論文基于googleandroid平臺(tái)的軟件設(shè)計(jì)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)論文-基于android平臺(tái)的家具展示系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)論文-基于網(wǎng)絡(luò)的任務(wù)調(diào)度管理軟件設(shè)計(jì)與開發(fā)
- 基于android平臺(tái)的聊天軟件設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文
- 計(jì)算機(jī)畢業(yè)論文-基于ios美食app的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文范文——基于android的校園通軟件設(shè)計(jì)
- 畢業(yè)論文-計(jì)算機(jī)學(xué)院網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文--基于google android平臺(tái)上的軟件設(shè)計(jì)研究
- 基于android的圖片閱讀器的設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)論文——android手機(jī)語音錄入軟件設(shè)計(jì)
- 計(jì)算機(jī)應(yīng)用軟件畢業(yè)論文
- 計(jì)算機(jī)科學(xué)與技術(shù)畢業(yè)論文基于android的信號(hào)發(fā)生器的設(shè)計(jì)
- 計(jì)算機(jī)軟件工程專業(yè)畢業(yè)論文---基于android平臺(tái)的語音朗讀器
- 塞曼效應(yīng)計(jì)算機(jī)輔助軟件設(shè)計(jì)論文
評(píng)論
0/150
提交評(píng)論