基于Android的背單詞軟件設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)畢業(yè)論文(共64頁(yè))_第1頁(yè)
基于Android的背單詞軟件設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)畢業(yè)論文(共64頁(yè))_第2頁(yè)
基于Android的背單詞軟件設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)畢業(yè)論文(共64頁(yè))_第3頁(yè)
基于Android的背單詞軟件設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)畢業(yè)論文(共64頁(yè))_第4頁(yè)
基于Android的背單詞軟件設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)畢業(yè)論文(共64頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、PAGE 畢業(yè)論文(b y ln wn)論文(lnwn)題目:基于(jy)Android的背單詞軟件的設(shè)計(jì)與實(shí)現(xiàn)姓 名: 學(xué) 號(hào): 班 級(jí): 專 業(yè):軟件工程 學(xué) 院:軟件學(xué)院 指導(dǎo)老師: 完成時(shí)間:2015年4月17日 PAGE III基于(jy)Android的背單詞軟件(run jin)的設(shè)計(jì)與實(shí)現(xiàn)摘 要隨著(su zhe)經(jīng)濟(jì)全球化,我們與外國(guó)人的接觸越來(lái)越多,英語(yǔ)已經(jīng)成為了中國(guó)與外面交流的主要工具,同時(shí)我國(guó)的英語(yǔ)教育也開(kāi)始普及到了小學(xué),人們對(duì)學(xué)習(xí)英語(yǔ)越來(lái)越重視。而對(duì)于學(xué)習(xí)英語(yǔ)特別是英語(yǔ)單詞記憶,記憶單詞的方式也在不斷的更新,而今移動(dòng)互聯(lián)網(wǎng)時(shí)代的到來(lái),尤其智能手機(jī)的廣泛應(yīng)用,英語(yǔ)學(xué)習(xí)的

2、平臺(tái)已經(jīng)逐漸向計(jì)算機(jī)或者手機(jī)等移動(dòng)設(shè)備上轉(zhuǎn)移,背單詞的方式方法進(jìn)入一個(gè)新的領(lǐng)域。背單詞軟件是當(dāng)下比較流行且方便有效的輔助記憶工具,本文介紹的背單詞軟件是一款基于android平臺(tái)的應(yīng)用軟件,其主要功能有單詞學(xué)習(xí),單詞背誦,單詞測(cè)試,真人發(fā)音,添加生詞本等。同時(shí)本文對(duì)背單詞軟件開(kāi)發(fā)中有關(guān)系統(tǒng)設(shè)計(jì),系統(tǒng)實(shí)施方法和設(shè)計(jì)詞庫(kù)等方面進(jìn)行了探索,以此推動(dòng)計(jì)算機(jī)英語(yǔ)輔助軟件開(kāi)發(fā)。關(guān)鍵詞: Android; 背單詞; 英文學(xué)習(xí); 軟件開(kāi)發(fā)Design and implementation of memorizing word software based on AndroidAbstractWith the

3、economic globalization, we contact with foreigners more and 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 learning English especi

4、ally 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 platform has been gradually shift to computer or on mobile devices such as mobile phones,methods of memorizin

5、g words into a new field.Memorizing words software is now more popular and convenient and effective tool of memory,crouching tiger word software is introduced in this paper a based on android platform of application software,its main function is the word study, recite words, word test, pronunciation

6、, to add the new words and so on.At the same time in this paper, the back word software development related to system design, system implementation methods and designs thesaurus has explored in such aspects,to promote English computer auxiliary software development.Key words: Android; recite words;

7、English study; software development 目 錄 TOC o 1-3 h z u HYPERLINK l _Toc390334060 摘 要 PAGEREF _Toc390334060 h I HYPERLINK l _Toc390334061 Abstract PAGEREF _Toc390334061 h II HYPERLINK l _Toc390334062 1. 緒 論 PAGEREF _Toc390334062 h 1 HYPERLINK l _Toc390334063 1.1研究(ynji)內(nèi)容 PAGEREF _Toc390334063 h 1 H

8、YPERLINK l _Toc390334064 1.2研究(ynji)意義 PAGEREF _Toc390334064 h 1 HYPERLINK l _Toc390334065 1.3研究(ynji)現(xiàn)狀和發(fā)展趨勢(shì) PAGEREF _Toc390334065 h 1 HYPERLINK l _Toc390334066 2. 平臺(tái)與開(kāi)發(fā)工具 PAGEREF _Toc390334066 h 3 HYPERLINK l _Toc390334067 2.1 開(kāi)發(fā)平臺(tái)介紹 PAGEREF _Toc390334067 h 3 HYPERLINK l _Toc390334068 2.2 開(kāi)發(fā)語(yǔ)言與開(kāi)發(fā)環(huán)

9、境 PAGEREF _Toc390334068 h 3 HYPERLINK l _Toc390334069 3. 英語(yǔ)背單詞軟件總體設(shè)計(jì)與需求分析 PAGEREF _Toc390334069 h 5 HYPERLINK l _Toc390334070 3.1 Android四大組件簡(jiǎn)介 PAGEREF _Toc390334070 h 5 HYPERLINK l _Toc390334071 3.2 Android 手機(jī)應(yīng)用軟件的UI設(shè)計(jì) PAGEREF _Toc390334071 h 6 HYPERLINK l _Toc390334072 3.3 英語(yǔ)背單詞軟件需求分析與性能分析 PAGEREF

10、 _Toc390334072 h 7 HYPERLINK l _Toc390334073 3.4 英語(yǔ)背單詞軟件操作流程圖與數(shù)據(jù)庫(kù)設(shè)計(jì) PAGEREF _Toc390334073 h 7 HYPERLINK l _Toc390334074 3.4.1 英語(yǔ)背單詞軟件操作流程圖 PAGEREF _Toc390334074 h 7 HYPERLINK l _Toc390334075 3.4.2 數(shù)據(jù)庫(kù)的創(chuàng)建與設(shè)計(jì) PAGEREF _Toc390334075 h 8 HYPERLINK l _Toc390334076 4. 系統(tǒng)各個(gè)模塊的具體實(shí)現(xiàn) PAGEREF _Toc390334076 h 13

11、 HYPERLINK l _Toc390334077 4.1 啟動(dòng)模塊的實(shí)現(xiàn) PAGEREF _Toc390334077 h 13 HYPERLINK l _Toc390334078 4.2 用戶信息模塊的實(shí)現(xiàn) PAGEREF _Toc390334078 h 14 HYPERLINK l _Toc390334079 4.3 用戶單詞學(xué)習(xí)模塊的實(shí)現(xiàn) PAGEREF _Toc390334079 h 16 HYPERLINK l _Toc390334080 4.4 用戶單詞復(fù)習(xí)模塊的實(shí)現(xiàn) PAGEREF _Toc390334080 h 17 HYPERLINK l _Toc390334081 4.5

12、 用戶單詞測(cè)試模塊的實(shí)現(xiàn) PAGEREF _Toc390334081 h 19 HYPERLINK l _Toc390334082 4.6 生詞本模塊的實(shí)現(xiàn) PAGEREF _Toc390334082 h 20 HYPERLINK l _Toc390334083 4.7 各界面之間切換的實(shí)現(xiàn) PAGEREF _Toc390334083 h 21 HYPERLINK l _Toc390334084 5. 客戶端界面測(cè)試 PAGEREF _Toc390334084 h 23 HYPERLINK l _Toc390334085 5.1 系統(tǒng)測(cè)試的目標(biāo) PAGEREF _Toc390334085 h

13、23 HYPERLINK l _Toc390334086 5.2 測(cè)試流程 PAGEREF _Toc390334086 h 23 HYPERLINK l _Toc390334087 5.3 測(cè)試用例與測(cè)試結(jié)果 PAGEREF _Toc390334087 h 23 HYPERLINK l _Toc390334088 6. 總結(jié) PAGEREF _Toc390334088 h 24 HYPERLINK l _Toc390334089 6.1 本文工作總結(jié) PAGEREF _Toc390334089 h 24 HYPERLINK l _Toc390334090 6.2 進(jìn)一步工作的打算 PAGERE

14、F _Toc390334090 h 24 HYPERLINK l _Toc390334091 參考文獻(xiàn) PAGEREF _Toc390334091 h 25 HYPERLINK l _Toc390334092 致 謝 PAGEREF _Toc390334092 h 25 HYPERLINK l _Toc390334093 外文原文 PAGEREF _Toc390334093 h 26 HYPERLINK l _Toc390334094 外文翻譯 PAGEREF _Toc390334094 h 37 PAGE 631. 緒 論1.1研究(ynji)內(nèi)容本著對(duì)用戶(yngh)學(xué)習(xí)英語(yǔ)提供便利和有效

15、記憶的目標(biāo),該英語(yǔ)背單詞軟件是基于Android手機(jī)平臺(tái),通過(guò)詞庫(kù)的解析(ji x)與導(dǎo)入,開(kāi)發(fā)出針對(duì)使用Android平臺(tái)的手機(jī)英語(yǔ)背單詞系統(tǒng)。用戶使用此平臺(tái)進(jìn)行單詞學(xué)習(xí)、單詞背誦、單詞測(cè)試、加入生詞本等。相對(duì)于書(shū)本辭典操作來(lái)說(shuō),背單詞可以更簡(jiǎn)便的直接的體現(xiàn)給用戶,而且使用方便,操作簡(jiǎn)單。用戶作為系統(tǒng)的服務(wù)群體,按照自己的需求選擇詞庫(kù)進(jìn)行單詞學(xué)習(xí)等,按照自己的方式選擇所需背記單詞的數(shù)量。遇到有生僻的單詞可以加入生詞本方便以后的二次查找,節(jié)省時(shí)間,方便閱覽。本系統(tǒng)要求主要實(shí)現(xiàn)以下功能模塊:用戶能夠選擇詞庫(kù),導(dǎo)入詞庫(kù);用戶能夠進(jìn)行單詞的學(xué)習(xí);用戶能夠進(jìn)行已學(xué)習(xí)過(guò)單詞的復(fù)習(xí),同時(shí)制定復(fù)習(xí)計(jì)劃;用戶

16、能夠進(jìn)行單詞的測(cè)試;提供單詞的真人發(fā)音功能;提供生詞本功能,用戶可以隨時(shí)添加生詞。1.2研究意義以前人們用最簡(jiǎn)單的辭典,在眾多的資料中翻閱、查找,費(fèi)時(shí)、費(fèi)力,而且應(yīng)用性非常差。設(shè)計(jì)這么一個(gè)背單詞系統(tǒng),使得用戶可以便捷,快速的進(jìn)行操作,同時(shí)也達(dá)到了穩(wěn)定,準(zhǔn)確的目的?;贏ndroid的英語(yǔ)背單詞程序的設(shè)計(jì)可以進(jìn)一步擴(kuò)大學(xué)習(xí)英語(yǔ)的途徑,讓廣大公眾能夠隨時(shí)隨地方便且快捷地認(rèn)識(shí)與記憶英語(yǔ)單詞,以提高自身的英語(yǔ)水平。本軟件提供從初次記憶單詞到熟記單詞的所有功能,幫助大家科學(xué)學(xué)習(xí)。當(dāng)您初次使用本軟件記憶單詞后,系統(tǒng)會(huì)自動(dòng)為您制定學(xué)習(xí)復(fù)習(xí)計(jì)劃,幫助您科學(xué)快速地完成記憶單詞的過(guò)程。軟件提供測(cè)試功能,幫助您自我

17、檢測(cè)學(xué)習(xí)狀態(tài)。更好地發(fā)揮了Android技術(shù)對(duì)移動(dòng)互聯(lián)網(wǎng)的現(xiàn)實(shí)性作用。1.3研究現(xiàn)狀和發(fā)展趨勢(shì)據(jù)市場(chǎng)研究公司IDC稱,2013年上季度Android手機(jī)全球份額達(dá)75%。成為最大智能手機(jī)系統(tǒng)。今年第一季度,全球Android智能手機(jī)出貨量上升至1.621億臺(tái),高于去年同期的9030萬(wàn)臺(tái);市場(chǎng)份額為75%,高于去年同期的59.1%。其他操作系統(tǒng)的表現(xiàn)則要平穩(wěn)很多。Android越來(lái)越引起人們的關(guān)注和追捧。移動(dòng)通信和互聯(lián)網(wǎng)成為當(dāng)今世界發(fā)展最快、市場(chǎng)潛力最大、前景最誘人的兩大業(yè)務(wù),它們的增長(zhǎng)速度都是任何預(yù)測(cè)家未曾預(yù)料到的,所以移動(dòng)互聯(lián)網(wǎng)可以預(yù)見(jiàn)將會(huì)創(chuàng)造經(jīng)濟(jì)神話。移動(dòng)互聯(lián)網(wǎng)的優(yōu)勢(shì)決定其用戶數(shù)量龐大,截

18、至2012年9月底,全球移動(dòng)互聯(lián)網(wǎng)用戶已達(dá)15億。Android是一種(y zhn)以Linux為基礎(chǔ)(jch)的開(kāi)放源碼操作系統(tǒng),采用(ciyng)Linux內(nèi)核,主要使用于便攜設(shè)備。開(kāi)放手機(jī)聯(lián)盟(OHA)成員可以任意使用和修改安卓的SDK軟件包。系統(tǒng)的開(kāi)源性使其具有良好的拓展性,一方面,為眾多移動(dòng)應(yīng)用開(kāi)發(fā)者提供了良好的系統(tǒng)性平臺(tái),有利于移動(dòng)應(yīng)用的集合;另一方面,終端廠商可以針對(duì)自身的特殊需要“定制化開(kāi)發(fā)”。與此相比,盡管2010年2月,塞班基本完成開(kāi)源工作,但由于代碼臃腫,用戶界面設(shè)計(jì)缺失,塞班的開(kāi)源并無(wú)實(shí)際意義,錯(cuò)失發(fā)展良機(jī)。因此,基于Android的英語(yǔ)背單詞程序開(kāi)發(fā),也是現(xiàn)代移動(dòng)互聯(lián)

19、網(wǎng)時(shí)代下催生的人們生活中不可或缺的一個(gè)產(chǎn)物。我們認(rèn)為,安卓操作系統(tǒng)發(fā)展迅猛主要得益于免費(fèi)、開(kāi)源和良好產(chǎn)業(yè)運(yùn)作策略,這三點(diǎn)為安卓在智能手機(jī)市場(chǎng)贏得更多的發(fā)展機(jī)遇。系統(tǒng)的免費(fèi)讓更多的廠商加入,推動(dòng)了份額的上升;代碼的開(kāi)源讓更多的開(kāi)發(fā)者進(jìn)入應(yīng)用開(kāi)發(fā);應(yīng)用的豐富吸引了更多用戶選擇,這也是谷歌值得眾多廠商學(xué)習(xí)的地方。此外,谷歌通過(guò)OHA聯(lián)合眾多廠商進(jìn)行系統(tǒng)研發(fā),不斷更新版本,將系統(tǒng)應(yīng)用推廣到更多的終端產(chǎn)品中,確保用戶體驗(yàn)持續(xù)改善。3G互聯(lián)網(wǎng)時(shí)代下,移動(dòng)應(yīng)用越來(lái)越多,Android 4.2.2更新包于2013年2月11日發(fā)布,未來(lái)采用Android系統(tǒng)手機(jī)越來(lái)越多。不僅僅在于手機(jī),在任何移動(dòng)設(shè)備上,都可以

20、采用Android開(kāi)發(fā)移植到終端設(shè)備上,例如電視、冰箱、空調(diào)、洗衣機(jī)等。將這些設(shè)備計(jì)入互聯(lián)網(wǎng),我們可以通過(guò)手機(jī)實(shí)時(shí)知道各個(gè)設(shè)備的狀態(tài),也可以控制它們工作。總之,Android 將帶給我們更加智能、便捷、現(xiàn)代的生活。從而,Android應(yīng)用的開(kāi)發(fā),將會(huì)越來(lái)越龐大,需求將會(huì)越來(lái)越豐富。開(kāi)發(fā)英語(yǔ)背單詞手機(jī)軟件和其他應(yīng)用將會(huì)越來(lái)越普遍,Android將會(huì)越來(lái)越壯大。2. 平臺(tái)(pngti)與開(kāi)發(fā)工具2.1 開(kāi)發(fā)(kif)平臺(tái)介紹本設(shè)計(jì)(shj)采用windows 作為開(kāi)發(fā)平臺(tái),由于windows系列操作系統(tǒng)做為市場(chǎng)份額最大的PC操作系統(tǒng),無(wú)論是用戶數(shù)還是基于windows平臺(tái)應(yīng)用數(shù)都是遙遙領(lǐng)先的。大多

21、數(shù)開(kāi)發(fā)者都會(huì)選擇此平臺(tái)作為開(kāi)發(fā)平臺(tái),而且很多應(yīng)用在windows 平臺(tái)提供了的相應(yīng)的開(kāi)發(fā)工具,如Eclipse、QT等。雖然大多數(shù)用戶很樂(lè)于將 Eclipse 當(dāng)作 Java 集成開(kāi)發(fā)環(huán)境( HYPERLINK /view/5775.htm IDE)來(lái)使用,但是 Eclipse 的目標(biāo)卻不僅僅這樣。Eclipse 這個(gè)開(kāi)發(fā)工具還包括插件的開(kāi)發(fā)環(huán)境(Plug-in Development Environment,PDE),而這個(gè)組件主要是針對(duì)希望擴(kuò)展 Eclipse 的人來(lái)的,因?yàn)镋clipse允許他們構(gòu)建出與 Eclipse 開(kāi)發(fā)環(huán)境無(wú)縫集成的工具。因?yàn)?Eclipse 中的所有東西都是插件存

22、在,對(duì)于 Eclipse 提供的插件,并且給用戶提供一致及統(tǒng)一的集成開(kāi)發(fā)環(huán)境來(lái)說(shuō),所有的軟件開(kāi)發(fā)人員都具有一樣的發(fā)揮場(chǎng)所。Eclipse 是一個(gè)開(kāi)放源代碼的、基于 Java 的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開(kāi)發(fā)工具(Java Development Kit,JDK)。 雖然大多數(shù)用戶很樂(lè)于將 Eclipse 當(dāng)作 Java 集成開(kāi)發(fā)環(huán)境(IDE)來(lái)使用,但 Eclipse 的目標(biāo)卻不僅限于此。Eclipse 還包括插件開(kāi)發(fā)環(huán)境(Plug-in Development Env

23、ironment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開(kāi)發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無(wú)縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開(kāi)發(fā)環(huán)境而言,所有工具開(kāi)發(fā)人員都具有同等的發(fā)揮場(chǎng)所。本畢設(shè)安裝的是Android 開(kāi)發(fā)插件。2.2 開(kāi)發(fā)語(yǔ)言與開(kāi)發(fā)環(huán)境Android的上層應(yīng)用程序是用Java語(yǔ)言開(kāi)發(fā),同時(shí)還需要基于Dalvik虛擬機(jī),所以,Google公司推薦使用主流的Java繼承開(kāi)發(fā)環(huán)境Eclipse。只有Eclipse還不夠,因?yàn)槭鞘褂肑ava語(yǔ)言進(jìn)行開(kāi)發(fā),還應(yīng)該有由SUN

24、公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的應(yīng)用程序開(kāi)發(fā)和Java開(kāi)發(fā)有較大區(qū)別的,所以還需要有Google提供的Android SDK。同時(shí),還需要在Eclipse安裝ADT,為Android開(kāi)發(fā)提供開(kāi)發(fā)工具的升級(jí)或者變更,是Eclipse下開(kāi)發(fā)工具的升級(jí)下載的工具。eclipse裝有android開(kāi)發(fā)插件,從而運(yùn)行Android 模擬器 ,模擬Android智能手機(jī)。簡(jiǎn)言之,需要(xyo)以下軟件,才能搭建Android開(kāi)發(fā)(kif)環(huán)境,從而進(jìn)行Android應(yīng)用程序的開(kāi)發(fā)(kif)。運(yùn)行開(kāi)發(fā)環(huán)境如表2-1所示:表

25、2-1 運(yùn)行開(kāi)發(fā)環(huán)境名稱版本語(yǔ)種操作系統(tǒng)Window 7旗艦版Sp 1簡(jiǎn)體中文Eclipse開(kāi)發(fā)工具 3.6默認(rèn)ADT安卓開(kāi)發(fā)工具17默認(rèn)基于平臺(tái)Android1.6以上默認(rèn)3. 英語(yǔ)(yn y)背單詞軟件總體設(shè)計(jì)與需求(xqi)分析3.1 Android四大(s d)組件簡(jiǎn)介ActivityActivity是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è)用戶展示選擇的菜單列表

26、或者展示出一些圖片和圖片的標(biāo)題。對(duì)于一個(gè)消息服務(wù)應(yīng)用程序,它可能包括一個(gè)顯示聯(lián)系人列表的界面,一個(gè)編寫(xiě)信息的界面,和其它的一些查看信息及修改應(yīng)用程序的設(shè)置而用到的Activity。雖然這些Activity共同工作,一起構(gòu)成了一個(gè)應(yīng)用完整的程序,但是每個(gè)Activity都是相對(duì)獨(dú)立的。ServiceService在后臺(tái),為Activity服務(wù),封裝好一些完整的功能邏輯,并接受上面的指令,然后完成相關(guān)的事務(wù)處理,使用中要定義好接受的Intent提供同步及異步的接口。Service雖然沒(méi)有用戶的界面,但是Service會(huì)在后臺(tái)一直運(yùn)行。比如,Service可能會(huì)在用戶處理其它事務(wù)時(shí),同時(shí)播放音樂(lè),或

27、者把網(wǎng)絡(luò)上的數(shù)據(jù)獲取下來(lái),或者進(jìn)行一些運(yùn)算,然后把計(jì)算的結(jié)構(gòu)提供給Activity,讓它展示給用戶。使用中,Service都要繼承類Serivce。和Activity等其它組件一樣,Service運(yùn)行在應(yīng)用程序的主線程中。因此Service不能讓其它組件或者用戶界面阻塞,這個(gè)通常就要為這些Service類增加線程執(zhí)行耗時(shí)的任務(wù)。Broadcast ReceiverBroadcast Receiver是Android提供的第三方應(yīng)用數(shù)據(jù)的訪問(wèn)方案,它可以派生出Content Provider這個(gè)類,然后對(duì)外提供數(shù)據(jù),它可以像數(shù)據(jù)庫(kù)一樣進(jìn)行選擇排序,它屏蔽內(nèi)部的細(xì)節(jié),并對(duì)外提供了一個(gè)統(tǒng)一接口模型,

28、這很好的簡(jiǎn)化上層應(yīng)用,它對(duì)數(shù)據(jù)整合提供了更方便的方式。Broadcase Receiver并不執(zhí)行任何的任務(wù),它僅是接受并響應(yīng)廣播的通知的一類組件。而大部分的廣播的通知是由系統(tǒng)產(chǎn)生,比如改變時(shí)區(qū)時(shí),電池電量低時(shí),用戶選擇一幅圖片或用戶換了語(yǔ)言首時(shí)。對(duì)于應(yīng)用程序,也同樣可以良好的發(fā)送廣播通知,比如通知其他的應(yīng)用程序某些數(shù)據(jù)已經(jīng)下載到設(shè)備上來(lái)并且可以使用。Content Provider 接受一種或多種的Intent作為觸發(fā)事件,對(duì)于接受到的相關(guān)消息,進(jìn)行一些簡(jiǎn)單處理,轉(zhuǎn)換成Notification,這統(tǒng)一了Android系統(tǒng)的事件廣播模型。對(duì)于應(yīng)用程序可以通過(guò)ContentProvider來(lái)訪問(wèn)

29、其它的應(yīng)用程序中的一些私有的數(shù)據(jù),這即是Android系統(tǒng)中提供的一種標(biāo)準(zhǔn)的共享數(shù)據(jù)的機(jī)制。對(duì)于共享的數(shù)據(jù)可存儲(chǔ)在系統(tǒng)的文件中、SQLite中或者其它的媒體中。ContentProvider實(shí)現(xiàn)類擴(kuò)展自ContentProvider這個(gè)類,并通過(guò)實(shí)現(xiàn)此類的一組標(biāo)準(zhǔn)接口,使其它的應(yīng)用程序能存取它控制的一些數(shù)據(jù)。但是應(yīng)用程序并不是直接調(diào)用ContentProvider中的一些方法,而是間接的,通過(guò)類ContentResolver來(lái)實(shí)現(xiàn)。ContentResolver這個(gè)類能夠與任何的一個(gè)ContentProvider進(jìn)行通信,它能與ContentProvider良好的合作管理進(jìn)程間通信。3.2 A

30、ndroid 手機(jī)(shu j)應(yīng)用軟件的UI設(shè)計(jì)(shj)由于(yuy)Android系統(tǒng)是一款手機(jī)操作系統(tǒng),所以基于此系統(tǒng)的應(yīng)用開(kāi)發(fā)也是基于手機(jī)屏幕大小的。手機(jī)屏幕大小不一,但要求軟件能夠適應(yīng)不同大小的手機(jī)屏幕,也就是界面能夠自動(dòng)適應(yīng),而且屏幕能夠翻轉(zhuǎn)(基于重力感應(yīng)使屏幕畫(huà)面自動(dòng)水平和垂直切換)。Android 界面由兩大基本組件組成:即容器和控件。一個(gè)窗口由一個(gè)基本的容器組成, 容器中可以放容器或者控件,每一個(gè)容器或者控件都有大小、長(zhǎng)寬等屬性。在一個(gè)Android 應(yīng)用中,一個(gè)Activity(Activity是Android中最常用也是最基本的組件)通常就是一個(gè)單獨(dú)的屏幕,每一個(gè)Act

31、ivity都被實(shí)現(xiàn)為一個(gè)獨(dú)立的類,并且繼承Activity這個(gè)子類。Activity提供了與用戶交互的可視化界面。創(chuàng)建一個(gè)Activity一般繼承Activity父類。覆蓋Activity的onCreate()方法,在該方法中調(diào)用setOnContextView()方法來(lái)展示要顯示的視圖。整個(gè)Android 項(xiàng)目劃分不同文件在不同文件夾中,android使用xml文件作為系統(tǒng)的布局文件,android 資源文件和 文件夾如圖3-1所示:圖3-1 Android項(xiàng)目文件(wnjin)結(jié)構(gòu)要想控制手機(jī)(shu j)界面的顯示方式,則必須使用布局這一概念。布局就像容器,里面可以裝下很多控件。布局里面

32、還可以套用其他的布局。這樣就可以實(shí)現(xiàn)界面的多樣化以及設(shè)計(jì)的靈活性。 (1) LinearLayout(線性)布局: 線性版面配置,在這個(gè)標(biāo)簽中,所有(suyu)元件都是按由上到下的排隊(duì)排成的。包括垂直線性布局和水平線性布局。(2) RelativeLayout(相對(duì)布局)就是以相對(duì)的方式定位布局,允許子元素指定他們相對(duì)于其它元素或父元素的位置(通過(guò)ID指定)。相對(duì)布局示例如圖3-2所示:圖3-2 Android相對(duì)布局(3) FrameLayout(幀布局(bj))是最簡(jiǎn)單(jindn)的一個(gè)布局對(duì)象。是一個(gè)框架布局樣式,可以用include標(biāo)簽(bioqin)載入定義的另一個(gè)layout文件

33、,所有的子元素將會(huì)固定在屏幕的左上角;你不能為FrameLayout中的一個(gè)子元素指定一個(gè)位置。后一個(gè)子元素將會(huì)直接在前 一個(gè)子元素之上進(jìn)行覆蓋填充,把它們部份或全部擋?。ǔ呛笠粋€(gè)子元素是透明的)。 (4) TableLayout(表格布局) 是一種類似表格的布局,這種布局會(huì)把包含的元素以行和列進(jìn)行排列。表格的列數(shù)為所有行中的最大列數(shù);每一行可以是一個(gè)Table Row布局對(duì)象,也可以是普通的View(視圖)對(duì)象,TableRow里面每一個(gè)元素占一列TableLayout總列數(shù)由列數(shù)最多的那一行決定。因此,要想實(shí)現(xiàn)各種顯示效果,可根據(jù)不同的界面需求,選用不同的布局方法。3.3 英語(yǔ)背單詞軟件

34、需求分析與性能分析技術(shù)可行性上,Android是一個(gè)成熟強(qiáng)大的移動(dòng)操作系統(tǒng),而且是一個(gè)開(kāi)源的系統(tǒng),市場(chǎng)占有率很高。Android應(yīng)用是用java語(yǔ)言,雖然版本有好多,但一般會(huì)向下兼容,用Eclipse + ADT來(lái)創(chuàng)建應(yīng)用程序,Android提供開(kāi)發(fā)的足夠的接口API讓開(kāi)發(fā)者開(kāi)發(fā)功能強(qiáng)大的應(yīng)用程序。 經(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)存小,用戶電池消耗小。所以該方案是可行的。操作可行性上,利用現(xiàn)有的windows系統(tǒng)進(jìn)行開(kāi)發(fā)。使用Eclipse作為開(kāi)發(fā)工具以及使用Sql

35、ite作為數(shù)據(jù)庫(kù),通過(guò)模擬器進(jìn)行程序調(diào)試,然后通過(guò)android智能機(jī)進(jìn)行功能測(cè)試。整個(gè)過(guò)程平臺(tái)廣泛,皆可實(shí)現(xiàn)。系統(tǒng)性能分析方面要求程序響應(yīng)速度快、安全性高、信息處理速度快。3.4 英語(yǔ)背單詞軟件操作流程圖與數(shù)據(jù)庫(kù)設(shè)計(jì)3.4.1 英語(yǔ)背單詞軟件操作流程圖 本英語(yǔ)背單詞軟件的操作流程圖如圖3-3所示:?jiǎn)?dòng)選擇詞庫(kù)學(xué)習(xí)習(xí)復(fù) 習(xí)測(cè) 試生詞本發(fā)音加入生詞本發(fā)音加入生詞本測(cè)試結(jié)果加入生詞本編輯單詞刪除圖3-3 操作(cozu)流程圖3.4.2 數(shù)據(jù)庫(kù)的創(chuàng)建(chungjin)與設(shè)計(jì)當(dāng)前(dngqin)android平臺(tái)采用的是sqlite數(shù)據(jù)庫(kù)。SQLite數(shù)據(jù)庫(kù)功能強(qiáng)大,使用方便。本系統(tǒng)使用了SQLi

36、te數(shù)據(jù)庫(kù)來(lái)保存英文單詞信息。在Android中創(chuàng)建和打開(kāi)一個(gè)數(shù)據(jù)庫(kù)都可以使用openOrCreateDatabase方法來(lái)實(shí)現(xiàn),本系統(tǒng)創(chuàng)建了名為“wordroi d.db”的數(shù)據(jù)庫(kù),并返回一個(gè)SQLiteDatabase對(duì)象db如下:SQLiteDatabase db=SQLiteDatabase.openOrCreateDatabase( DB_NAME, null);DB_NAME為數(shù)據(jù)庫(kù)的儲(chǔ)存地址:data/data/wordroid.model/databases/wordroid.db 創(chuàng)建表通過(guò)execSQL方法來(lái)執(zhí)行一條SQL語(yǔ)句。本系統(tǒng)創(chuàng)建了一個(gè)名為sql的表。具體代碼如下:

37、String sql=CREATE TABLE + table + ( ID text not null, SPELLING text not null , MEANNING text not null, PHONETIC_ALPHABET text, LIST text not null + );db.execSQL(sql);向表中添加一條數(shù)據(jù)使用insert方法來(lái)添加數(shù)據(jù)即單詞。具體實(shí)現(xiàn)如下:db.insert(table, null, values);通過(guò)使用update方法來(lái)修改表中數(shù)據(jù),具體實(shí)現(xiàn)如下:db.update(table, values, whereClause, whe

38、reArgs);通過(guò)使用delete方法從表中刪除數(shù)據(jù)。關(guān)閉數(shù)據(jù)庫(kù)很重要,經(jīng)常容易忘記。直接使用SQLiteDatabase的close方法。在Android中查詢(chxn)數(shù)據(jù)是通過(guò)Cursor類實(shí)現(xiàn)(shxin)的,使用SQLiteDatabase.query()方法時(shí),會(huì)得到(d do)一個(gè)Cursor對(duì)象,Cursor指向的就是每一條數(shù)據(jù)。注意Android使用Cursor類返回一個(gè)需要的值,Cursor作為一個(gè)指針從數(shù)據(jù)庫(kù)查詢返回結(jié)果,使用Cursor允許Android更有效地管理它們需要的行和列,運(yùn)用cursor.moveToFirst()是對(duì)Cursor指向的位置進(jìn)行操作:移到

39、第一行。wordroid.db文件放在Eclipse Android工程中的res文件夾下的raw目錄中,通過(guò)使用getResources().openRawResource方法獲得raw目錄中資源的InputStre am對(duì)象,然后將該InputStream對(duì)象中的數(shù)據(jù)寫(xiě)入手機(jī)內(nèi)存或SD卡的目錄中相應(yīng)文件中。如圖3-4所示:圖3-4 數(shù)據(jù)庫(kù)文件在wordroid數(shù)據(jù)庫(kù)中主要包含以下幾個(gè)表格:表BOOKS 該表記錄了詞庫(kù)的基本信息,包括詞庫(kù)的ID,詞庫(kù)的名稱,加入時(shí)間,list數(shù)量,單詞數(shù)量。如下表3-1所示:表3-1 BOOKS表字段類型非空默認(rèn)值主鍵描述IDtext編號(hào)NAMEtext名稱

40、GENERATE_TIMEtext加入時(shí)間NUMOFLISTtextList數(shù)量NUMOFWORDtext單詞數(shù)量BOOKS表具體內(nèi)容如圖3-5所示: 圖3-5 表BOOKS表book1該表記錄(jl)了單詞的基本信息,包括單詞的編號(hào),單詞的拼寫(xiě)(pnxi),單詞(dnc)的意思,單詞音標(biāo),所屬list. 如下表3-2所示:表3-2 book1表字段類型非空默認(rèn)值主鍵描述IDtext編號(hào)SPELLINGtext拼寫(xiě)MEANNINGtext意思PHONETIC_ALPHABETtext音標(biāo)LISTtext所屬list表book1具體內(nèi)容如圖3-6所示:圖3-6表book1表book2該表記錄(j

41、l)了單詞的基本信息,包括單詞的編號(hào),單詞的拼寫(xiě),單詞的意思,單詞音標(biāo),所屬list。見(jiàn)表3-2。表book2具體內(nèi)容如圖3-7所示: 圖3-7表book2表book3該表記錄了單詞的基本信息,包括單詞的編號(hào),單詞的拼寫(xiě),單詞的意思(y s),單詞音標(biāo),所屬list。 見(jiàn)表3-2。表book3具體內(nèi)容如圖3-8所示:圖3-8表book3表PLAN該表記錄了復(fù)習(xí)計(jì)劃的基本(jbn)信息,包括詞庫(kù)的編號(hào),所在list,已學(xué)習(xí)list,學(xué)習(xí)時(shí)間,復(fù)習(xí)次數(shù),復(fù)試時(shí)間,最佳得分,是否復(fù)習(xí)。 如下表3-3所示。表3-3 PLAN表字段類型非空默認(rèn)值主鍵描述BOOKIDtext詞庫(kù)的編號(hào)LISTtext所在

42、listLEARNEDtext已學(xué)習(xí)listLEARN_TIMEtext學(xué)習(xí)時(shí)間REVIEW_TIMEStext復(fù)習(xí)次數(shù)REVIEWTIMEtext復(fù)試時(shí)間BESTSCOREtext最佳得分SHOULDREVIEWtext是否復(fù)習(xí)表PLAN具體內(nèi)容如圖3-9所示:圖3-9表PLAN 4. 系統(tǒng)(xtng)各個(gè)模塊的具體(jt)實(shí)現(xiàn)4.1 啟動(dòng)模塊(m kui)的實(shí)現(xiàn)啟動(dòng)界面是系統(tǒng)的第一個(gè)界面,目的是給用戶一種直觀的感受,給用戶一種良好的感覺(jué)。啟動(dòng)界面的布局文件為layout文件夾里的login.xml,由一個(gè)Linearlayout(線性布局) 構(gòu)成,里面包含一個(gè)ImageView (圖片控件

43、)并填充整個(gè)手機(jī)界面,考慮到橫豎屏切換和屏幕大小,在res的drawable-hdpi、drawable-ldpi和drawa ble-mdpi三個(gè)文件夾分別放三種尺寸圖片,分辨路為480 x800、800 x480、320 x460并且啟動(dòng)畫(huà)面要覆蓋整個(gè)手機(jī)屏幕,啟動(dòng)界面如圖4-1所示:圖4-1 啟動(dòng)界面啟動(dòng)界面最主要的工作時(shí)設(shè)置畫(huà)面延時(shí),并且能夠在畫(huà)面顯示的3秒內(nèi)對(duì)HOME鍵、返回鍵,做出相應(yīng),并且可以支持橫豎屏切換。實(shí)現(xiàn)延時(shí)效果主要使用線程來(lái)實(shí)現(xiàn)。當(dāng)android程序啟動(dòng)時(shí),首先由AndroidMainfest.xml系統(tǒng)主配置文件來(lái)查找第一個(gè)要顯示界面(第一個(gè)要顯示的Activity必

44、須要包含在與之間)代碼如下:protected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubthis.setTitle(安卓背單詞-Wordroid);super.onCreate(savedInstanceState);this.setContentView(R.layout.login);LayoutInflater mInflater = LayoutInflater.from(this);myView = mInflater.inflate(R.layout.main, null);

45、Thread thread = new Thread()public void run()try Thread.sleep(2000);Message m = new Message();m.what=1;Main.this.mHandler.sendMessage(m); catch (InterruptedException e1) / TODO Auto-generated catch blocke1.printStackTrace();thread.start();OperationOfBooks OOB = new OperationOfBooks();SharedPreferenc

46、es setting = getSharedPreferences(wordroid.model_preferences, MODE_PRIVATE);OOB.setNotify(setting.getString(time, 18:00 下午(xiw),Main.this); File dir = new File(data/data/wordroid.model/databases); if (!dir.exists() dir.mkdir(); if (!(new File(SqlHelper.DB_NAME).exists() FileOutputStream fos;try fos

47、= new FileOutputStream(SqlHelper.DB_NAME); byte buffer = new byte8192; int count = 0; InputStream is = getResources().openRawResource( R.raw.wordorid); while (count = is.read(buffer) 0) fos.write(buffer, 0, count); fos.close(); is.close(); catch (Exception e) / TODO Auto-generated catch blocke.print

48、StackTrace(); SharedPreferences settings=getSharedPreferences(SETTING_BOOKID, 0);DataAccess.bookID=settings.getString(BOOKNAME, );OOB.UpdateListInfo(Main.this);initWidgets();登錄(dn l)界面由SplashActivity.java類負(fù)責(zé)顯示。然后根據(jù)(gnj)當(dāng)前類要顯示布局文件文件來(lái)繪制整個(gè)界面。隨之,啟動(dòng)延時(shí)線程,采用循環(huán),循環(huán)一次線程休眠100ms(防止系統(tǒng)卡頓)。按下HOME鍵則返回手機(jī)主界面,延時(shí)暫停,再點(diǎn)擊

49、啟動(dòng)程序時(shí)延時(shí)線程繼續(xù)運(yùn)行,直到3s后,跳到下一個(gè)界面。當(dāng)按下返回鍵時(shí),程序?qū)㈥P(guān)閉。4.2 用戶信息模塊的實(shí)現(xiàn)該界面的布局文件為main.xml,整個(gè)界面直觀明了的展示了該系統(tǒng)的主要功能以及用戶學(xué)習(xí)進(jìn)度。界面用一張圖片作為背景,在界面左上角顯示兩個(gè)圖片按鈕(ImageButton):刪除按鈕與重置按鈕,組成一個(gè)線性布局。在界面中間上方處顯示下拉列表組件(Spinner),給用戶提供詞庫(kù)的選擇:GRE紅寶書(shū)(上),GRE紅寶書(shū)(中),GRE紅寶書(shū)(下)以及導(dǎo)入新詞庫(kù)。在界面中間布局了三個(gè)文本框(Textview)和兩個(gè)使用進(jìn)度條(ProgressBar),組成一個(gè)線性布局。一個(gè)文本框用來(lái)顯示用戶

50、學(xué)習(xí)信息:詞庫(kù)名稱,總詞匯量與創(chuàng)建時(shí)間;兩個(gè)使用進(jìn)度條分別顯示已學(xué)習(xí)list的數(shù)量與已復(fù)習(xí)list的數(shù)量。在界面的的底部布局了四個(gè)按鈕(Button):學(xué)習(xí),復(fù)習(xí),測(cè)試,生詞本。組成了一個(gè)線性布局。這些控件在一起采用相對(duì)布局,可以使這些控件的位置相對(duì)擺放,靠在父容器下方,不至于零散。用戶信息主界面如圖4-2所示:圖4-2 用戶(yngh)信息主界面上文(shngwn)提到了該界面給用戶提供詞庫(kù)選擇的下拉列表組件(Spinner),詞庫(kù)(c k)選擇則要為下拉列表定義一個(gè)適配器,這里就用到前面定義的books;同時(shí)為適配器設(shè)置下拉列表下拉時(shí)的菜單樣式;最后將適配器(adapter)添加到下拉列表

51、上(pickBook)。代碼如下:ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, books);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);pickBook.setAdapter(adapter);事件pickBook.setOnItemSelectedListener(new OnItemSelectedListener()為下拉列表設(shè)置各種事件的響應(yīng),這個(gè)事響

52、應(yīng)菜單被選中。同時(shí)該界面initWidgets() 實(shí)現(xiàn)了桌面小插件的設(shè)置,把用戶生詞本的內(nèi)容直接呈現(xiàn),方便用戶的瀏覽。對(duì)于界面左上角的兩個(gè)刪除與重置按鈕,通過(guò) onClick (View v)事件,頁(yè)面上顯示一個(gè)(對(duì)話框)dialog,dialog的樣式設(shè)置由res,文件夾下的values文件夾dialogStyle.xml負(fù)責(zé),界面顯示時(shí),先生成一個(gè)dialog對(duì)象,然后顯示這個(gè)dialog。詞庫(kù)(c k)由wordroid.db數(shù)據(jù)庫(kù)里的表Book1, Book2, Book3組成(z chn),通過(guò)this.set ListAdapter(new ArrayAdapter(this,

53、R.layout.file_row, fileNames);實(shí)現(xiàn)詞庫(kù)的導(dǎo)入操作。相關(guān)代碼(di m)如下:super.onCreate(savedInstanceState);this.setTitle(導(dǎo)入新詞庫(kù));this.setContentView(R.layout.import_book);setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);File f = new File(/sdcard/);File files=f.listFiles();fileNames = new Stringfiles.le

54、ngth;for (int i=0;ifileNames.length;i+)fileNamesi=filesi.getName();this.setListAdapter(new ArrayAdapter(this, R.layout.file_row, fileNames);4.3 用戶單詞學(xué)習(xí)模塊的實(shí)現(xiàn)該界面的布局文件為studyword_main.xml和studyword.xml。studyword_main.xml文件里顯示兩個(gè)文本框,構(gòu)成一個(gè)框架布局FrameLayout。分別為未學(xué)習(xí)過(guò)的LIST和所有的LIST;同時(shí)顯示各項(xiàng)LIST列表。用戶單詞學(xué)習(xí)列表界面如圖4-3所示:圖4

55、-3 用戶單詞學(xué)習(xí)列表界面Studyword.xml布局文件界面上方布局了一個(gè)文本框:?jiǎn)卧~記憶。界面中間顯示一個(gè)圖片按鈕和兩個(gè)文本框,構(gòu)成一個(gè)線性布局。圖片按鈕為發(fā)音標(biāo)示,按鈕的屬性設(shè)置為android:drawable/btn_default,文本框分別為拼寫(xiě)(spelling)與單詞解釋(info)。界面底部顯示三個(gè)按鈕,構(gòu)成一個(gè)線性布局。按鈕分別為:上一個(gè),加入生詞本,下一個(gè)。用戶單詞學(xué)習(xí)記憶界面如圖4-4所示:圖4-4 用戶單詞學(xué)習(xí)記憶(jy)界面重復(fù)加入生詞(shngc)本以后會(huì)提示:生詞本中已包含這個(gè)單詞;強(qiáng)制退出時(shí)會(huì)提示學(xué)習(xí)未完成,進(jìn)行選擇。該學(xué)習(xí)模塊的機(jī)器發(fā)音功能(gngnng

56、)通過(guò)TTS引擎實(shí)現(xiàn),TTS即TextToSpeech,將所指定的文本轉(zhuǎn)成不同語(yǔ)言音頻輸出。如果用戶手機(jī)支持TTS發(fā)音功能,首先設(shè)置發(fā)音語(yǔ)言tts.setLanguage(loc),判斷語(yǔ)言可用后,使用Speak()方法可以直接在應(yīng)用程序中實(shí)現(xiàn)語(yǔ)音功能tts.speak(list.get(currentnum).getSpelling(),TextToSpeech.QUEUE_ADD,null)。發(fā)音完成后,回收TTS即可,當(dāng)確定應(yīng)用程序不再需要TTS的相關(guān)功能后,可以在Activity的OnDestroy()方法中調(diào)用super.onDestroy()釋放當(dāng)前TTS實(shí)體所占用的資源。相關(guān)代碼

57、如下:public class TTS private TextToSpeech.OnInitListener ttsInitListener = new TextToSpeech.OnInitListener() Overridepublic void onInit(int status) Locale loc = new Locale(us, , ); if (tts.isLanguageAvailable(loc) = TextToSpeech.LANG_AVAILABLE)tts.setLanguage(loc); tts.setOnUtteranceCompletedListener

58、(ttsUtteranceCompletedListener); 4.4 用戶單詞(dnc)復(fù)習(xí)模塊的實(shí)現(xiàn)該界面(jimin)的布局文件為reviewlayout.xml。界面(jimin)的上方布局了一個(gè)文本框:?jiǎn)卧~復(fù)習(xí)。界面中間顯示一個(gè)圖片按鈕和兩個(gè)文本框,構(gòu)成線性布局嵌套。圖片按鈕為發(fā)音標(biāo)示,按鈕的屬性設(shè)置為android:drawable/btn_default,文本框分別為拼寫(xiě)(spelling)與單詞解釋(info)。界面底部顯示三個(gè)按鈕,另有兩個(gè)隱藏按鈕,構(gòu)成一個(gè)線性布局。按鈕分別為:加入生詞本,我記得,不記得了,記對(duì)了,記錯(cuò)了。用戶單詞復(fù)習(xí)界面如圖4-5所示:圖4-5 用戶單詞

59、復(fù)習(xí)界面按下我記得按鈕文本框顯示單詞的解釋,界面下方顯示“記對(duì)了”“記錯(cuò)了”兩個(gè)按鈕,按下記對(duì)了進(jìn)入下一個(gè)單詞的復(fù)習(xí)。強(qiáng)制退出時(shí)會(huì)提示復(fù)習(xí)未完成,進(jìn)行選擇。該單詞復(fù)習(xí)模塊首先需要對(duì)已學(xué)習(xí)過(guò)的list進(jìn)行數(shù)據(jù)存儲(chǔ),這里使用Activity類的getSharedPreferences方法獲得SharedPreferences對(duì)象,其中存儲(chǔ)key-value的文件的名稱由getSharedPreferences方法的第一個(gè)參數(shù)指定;使用該接口的edit獲得SharedPreferences.Editor對(duì)象,再通過(guò)SharedPreferences.Editor接口的putString方法保存數(shù)據(jù)。

60、進(jìn)入復(fù)習(xí)界面后,則通過(guò)getString讀取保存的list。用戶在復(fù)習(xí)選擇時(shí)通過(guò)setVisibility()實(shí)現(xiàn)各個(gè)按鈕控件的可見(jiàn)與否。復(fù)習(xí)完成時(shí)生成一個(gè)dialog對(duì)象,然后顯示這個(gè)dialog。相關(guān)核心代碼如下:private void UpdateView() if (currentnumlist.size()SharedPreferences setting = getSharedPreferences(wordroid.model_preferences, MODE_PRIVATE);if(setting.getBoolean(iftts, false)Thread thread

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論