版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、職場(chǎng)大變樣社區(qū)():下載畢業(yè)設(shè)計(jì)成品全套資料,全部50元以下畢 業(yè) 設(shè) 計(jì)題目:基于移動(dòng)端的網(wǎng)上訂餐系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)摘 要隨著智能手機(jī)的快速普及,智能手機(jī)操作系統(tǒng)市場(chǎng)風(fēng)生水起。為了讓智能手機(jī)能夠隨時(shí)隨地地查詢(xún)互聯(lián)網(wǎng)所提供的服務(wù),一種高效的方法就是將應(yīng)用系統(tǒng)的功能拓展到手機(jī)終端上,讓手機(jī)能夠通過(guò)移動(dòng)網(wǎng)絡(luò)以及互聯(lián)網(wǎng)訪問(wèn)相關(guān)資源信息。因此,智能手機(jī)應(yīng)用軟件及其需要的服務(wù)將有廣闊的發(fā)展前景。本課題為其設(shè)計(jì)一個(gè)基于Android點(diǎn)餐系統(tǒng),為用戶(hù)提供一個(gè)方便日常操作的便捷點(diǎn)餐系統(tǒng),它滿(mǎn)足了廣大用戶(hù)的需要,為需求雙方提供了一個(gè)共贏的平臺(tái)。本論文首先介紹系統(tǒng)的開(kāi)發(fā)背景和意義,接著詳細(xì)介紹系統(tǒng)設(shè)計(jì)以及實(shí)現(xiàn)的過(guò)程
2、,最后介紹了系統(tǒng)測(cè)試和本軟件的測(cè)試用例以及總結(jié)了本次畢業(yè)設(shè)計(jì)整個(gè)過(guò)程。關(guān)鍵詞: Android 、智能系統(tǒng)、在線點(diǎn)餐、手機(jī)軟件ABSTRACTWith the rapid proliferation of smart phones, smart phone operating system market burgeoned. In order to make smart phones can check the Internet anytime, anywhere service provided, an efficient method is to expand the applicatio
3、n system functions to the mobile terminal, allowing the phone to access information via the mobile network resources and the Internet. Therefore, smart phone applications and services they need to have broad prospects for development. The topics to design an Android-based ordering system, to provide
4、 users with an easy and convenient ordering system daily operations, it meets the needs of customers, demand for the two sides to provide a win-win platform. This paper introduces the background and significance of the development of the system, followed by detailed system design and implementation
5、process, and finally introduced the system testing and test this software and summarizes the whole process of this graduation project. Keywords: Android, intelligent systems, online ordering, mobile phone software目 錄 TOC o 1-3 h z u HYPERLINK l _Toc382370682 摘 要 PAGEREF _Toc382370682 h 2 HYPERLINK l
6、 _Toc382370683 ABSTRACT PAGEREF _Toc382370683 h 3 HYPERLINK l _Toc382370684 目 錄 PAGEREF _Toc382370684 h 1 HYPERLINK l _Toc382370685 1 緒 論 PAGEREF _Toc382370685 h 1 HYPERLINK l _Toc382370686 1.1課題研究背景和意義 PAGEREF _Toc382370686 h 1 HYPERLINK l _Toc382370687 1.2課題可行性分析 PAGEREF _Toc382370687 h 2 HYPERLIN
7、K l _Toc382370688 1.3論文框架安排 PAGEREF _Toc382370688 h 3 HYPERLINK l _Toc382370689 2 開(kāi)發(fā)語(yǔ)言說(shuō)明 PAGEREF _Toc382370689 h 4 HYPERLINK l _Toc382370690 2.1 開(kāi)發(fā)工具及環(huán)境簡(jiǎn)介 PAGEREF _Toc382370690 h 4 HYPERLINK l _Toc382370691 2.2 Android系統(tǒng) PAGEREF _Toc382370691 h 5 HYPERLINK l _Toc382370692 2.2.1 Android Features特性 PA
8、GEREF _Toc382370692 h 5 HYPERLINK l _Toc382370693 2.2.2 Android系統(tǒng)的四大組件 PAGEREF _Toc382370693 h 6 HYPERLINK l _Toc382370694 3 點(diǎn)餐系統(tǒng)分析 PAGEREF _Toc382370694 h 8 HYPERLINK l _Toc382370695 3.1概述 PAGEREF _Toc382370695 h 8 HYPERLINK l _Toc382370696 3.1.1系統(tǒng)分析的原則 PAGEREF _Toc382370696 h 8 HYPERLINK l _Toc382
9、370697 3.1.2系統(tǒng)分析的方法 PAGEREF _Toc382370697 h 8 HYPERLINK l _Toc382370698 3.2系統(tǒng)需求分析 PAGEREF _Toc382370698 h 9 HYPERLINK l _Toc382370699 3.3系統(tǒng)流程分析 PAGEREF _Toc382370699 h 9 HYPERLINK l _Toc382370700 4 點(diǎn)餐系統(tǒng)詳細(xì)設(shè)計(jì) PAGEREF _Toc382370700 h 11 HYPERLINK l _Toc382370701 4.1 系統(tǒng)設(shè)計(jì)原則 PAGEREF _Toc382370701 h 11 HY
10、PERLINK l _Toc382370702 4.2 系統(tǒng)設(shè)計(jì)目標(biāo) PAGEREF _Toc382370702 h 12 HYPERLINK l _Toc382370703 4.3系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì) PAGEREF _Toc382370703 h 12 HYPERLINK l _Toc382370704 4.4服務(wù)端數(shù)據(jù)庫(kù)設(shè)計(jì) PAGEREF _Toc382370704 h 13 HYPERLINK l _Toc382370705 5系統(tǒng)實(shí)現(xiàn)與測(cè)試 PAGEREF _Toc382370705 h 15 HYPERLINK l _Toc382370706 5.1 搭建Android開(kāi)發(fā)環(huán)境 PA
11、GEREF _Toc382370706 h 15 HYPERLINK l _Toc382370707 5.2系統(tǒng)實(shí)現(xiàn) PAGEREF _Toc382370707 h 17 HYPERLINK l _Toc382370708 5.2.1 登錄模塊實(shí)現(xiàn) PAGEREF _Toc382370708 h 17 HYPERLINK l _Toc382370709 5.2.2 菜譜大全模塊實(shí)現(xiàn) PAGEREF _Toc382370709 h 18 HYPERLINK l _Toc382370710 5.2.3 在線選擇座位模塊 PAGEREF _Toc382370710 h 21 HYPERLINK l
12、_Toc382370711 5.2.4 我的訂單模塊 PAGEREF _Toc382370711 h 25 HYPERLINK l _Toc382370712 5.2.5 服務(wù)端模塊模塊 PAGEREF _Toc382370712 h 27 HYPERLINK l _Toc382370713 5.3 系統(tǒng)測(cè)試 PAGEREF _Toc382370713 h 28 HYPERLINK l _Toc382370714 5.3.1 軟件測(cè)試 PAGEREF _Toc382370714 h 28 HYPERLINK l _Toc382370715 5.3.2 測(cè)試用例 PAGEREF _Toc3823
13、70715 h 29 HYPERLINK l _Toc382370716 5.3.3 測(cè)試總結(jié) PAGEREF _Toc382370716 h 29 HYPERLINK l _Toc382370717 6 總結(jié) PAGEREF _Toc382370717 h 31 HYPERLINK l _Toc382370718 致 謝 PAGEREF _Toc382370718 h 32 HYPERLINK l _Toc382370719 參考文獻(xiàn) PAGEREF _Toc382370719 h 33 HYPERLINK l _Toc382370720 附錄 PAGEREF _Toc382370720 h
14、 341 緒 論1.1課題研究背景和意義現(xiàn)在智能手機(jī)可謂是爆發(fā)式增長(zhǎng),傳統(tǒng)手機(jī)在不斷地消失,諾基亞就是在這樣的環(huán)境中受到了極大的困擾,現(xiàn)在主要有三個(gè)使用率最高,關(guān)注度最高的手機(jī)平臺(tái),分別是:Android,ios和windows phone平臺(tái),這三個(gè)平臺(tái)中Android的占有率最高,但是設(shè)備種類(lèi)非常復(fù)雜,碎片化嚴(yán)重,而ios設(shè)備由于apple公司的獨(dú)特管理理念,得到了一個(gè)完整的生態(tài)系統(tǒng),管理得井井有條,幾乎沒(méi)有碎片化的現(xiàn)象和趨勢(shì),但是這也導(dǎo)致了其設(shè)備種類(lèi)不多,無(wú)法滿(mǎn)足所有用戶(hù)的缺點(diǎn),還有windows phone雖然現(xiàn)在炒作得很火熱,但是其用戶(hù)量相對(duì)其他的兩個(gè)平臺(tái)來(lái)說(shuō)幾乎是可以或忽略不計(jì),所
15、以在這里不做討論。Android平臺(tái)是一個(gè)面向大眾的系統(tǒng),分布在低端,中端和高端市場(chǎng)中,在各個(gè)階段的是市場(chǎng)中都有很受歡迎的機(jī)型,并且Android是開(kāi)源的,開(kāi)發(fā)者隨時(shí)都可以查看系統(tǒng)源代碼,并且使用時(shí)下最流行的java作為其主要的開(kāi)發(fā)語(yǔ)言。由于這些特點(diǎn),使得Android成為現(xiàn)在市場(chǎng)占有量最大的軟件平臺(tái),在這樣的平臺(tái)上面開(kāi)發(fā)一款獨(dú)特的日常生活軟件尤為必要的。 Android一詞的本義指“機(jī)器人”。同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名稱(chēng)該平臺(tái)由操作系統(tǒng)、中間件、用戶(hù)界面和應(yīng)用軟件組成號(hào)稱(chēng)是首個(gè)為移動(dòng)終端打造的真正開(kāi)放和完整的移動(dòng)軟件。 Andro
16、id是基于Linux內(nèi)核的軟件平臺(tái)和操作系統(tǒng)早期由Google開(kāi)發(fā)在華注冊(cè)商標(biāo)名為“安致”,后由開(kāi)放手機(jī)聯(lián)盟、Open Handset Alliance開(kāi)發(fā)。它采用了軟件堆層,software stack,又名以軟件疊層的架構(gòu)主要分為三部分。低層以Linux內(nèi)核工作為基礎(chǔ),只提供基本功能,其他的應(yīng)用軟件則由各公司自行開(kāi)發(fā),以Java作為編寫(xiě)程序的一部分。另外,為了推廣此技術(shù),Google和其它幾十個(gè)手機(jī)公司建立了開(kāi)放手機(jī)聯(lián)盟。Android在未公開(kāi)之前常被傳聞為Google電話或gPhone。大多傳聞?wù)J為Google開(kāi)發(fā)的是自己的手機(jī)電話產(chǎn)品,而不是一套軟件平臺(tái)。到了2010年1月,Googl
17、e開(kāi)始發(fā)表自家品牌手機(jī)電話的Nexus One。目前最新SDK版本為Android 4.4.0。1.2課題可行性分析可行性研究的目的,就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。系統(tǒng)的可行性分析主要包括經(jīng)濟(jì)上的可行性,技術(shù)上的可行性,操作上的可行性和法律上的可行性。經(jīng)濟(jì)可行性目標(biāo)系統(tǒng)開(kāi)發(fā)經(jīng)濟(jì)需求的比較低,加上具有成熟的Android平臺(tái)以及十分普及手機(jī)設(shè)備,所以在軟硬件的支出上十分有限。而且,目標(biāo)系統(tǒng)并是十分的復(fù)雜,開(kāi)發(fā)的周期較短,人員經(jīng)濟(jì)支出有限。當(dāng)系統(tǒng)開(kāi)發(fā)成后,通過(guò)測(cè)試和、試運(yùn)行和實(shí)際應(yīng)用后,將很大程度上提高手機(jī)管理軟件系統(tǒng)的科學(xué)性和高效性,在為人們帶來(lái)便利的同時(shí),也為系統(tǒng)的進(jìn)
18、一步推廣、創(chuàng)新創(chuàng)造了條件,這帶來(lái)的經(jīng)濟(jì)回報(bào)將遠(yuǎn)超過(guò)支出,并且最重要的一點(diǎn)是通過(guò)該系統(tǒng)的開(kāi)發(fā),可以使我們進(jìn)一步理解軟件工程思想和軟件開(kāi)發(fā)流程,為從事軟件開(kāi)發(fā)工作打下很好的基礎(chǔ),從長(zhǎng)遠(yuǎn)利益來(lái)考慮,本課題的設(shè)計(jì)開(kāi)發(fā)還是具有相當(dāng)大的經(jīng)濟(jì)可行性的。技術(shù)可行性本系統(tǒng)使用Android技術(shù)進(jìn)行開(kāi)發(fā),發(fā)展到現(xiàn)在,Android已經(jīng)算是一個(gè)較成熟的平臺(tái)了,現(xiàn)在有越來(lái)越多的企業(yè)及技術(shù)人員選擇它作為開(kāi)發(fā)平臺(tái)。因此,在技術(shù)上是完全可以勝任這個(gè)平臺(tái)的開(kāi)發(fā)。Android開(kāi)發(fā)平臺(tái)是由谷歌與 HYPERLINK t _blank 開(kāi)放手機(jī)聯(lián)盟合作開(kāi)發(fā)的一個(gè)開(kāi)放、自由的移動(dòng)終端平臺(tái),它由操作系統(tǒng)、中間件、應(yīng)用軟件三部分組成。
19、該平臺(tái)備有完善的程序開(kāi)發(fā)環(huán)境,包括模擬器、除錯(cuò)工具、程序執(zhí)行所耗用存儲(chǔ)器、性能評(píng)介等功能。操作可行性本系統(tǒng)用戶(hù)只要有一臺(tái)Android手機(jī),就可以使用了,系統(tǒng)是由的操作都是用戶(hù)熟悉的選擇框或者按鈕等等。所有的操作通過(guò)手機(jī)就可以完成,用戶(hù)不需培訓(xùn),只要稍微提示一下即可。因此,在操作使用上,本系統(tǒng)簡(jiǎn)單、方便,易于使用戶(hù)接受,因而是十分可行的3。法律可行性由于本系統(tǒng)是在相關(guān)法律法規(guī)下實(shí)施完成的,所以不存在任何法律問(wèn)題,在法律上是完全可行的。綜合考慮經(jīng)濟(jì)、技術(shù)、操作和法律等方面的因素,該手機(jī)軟件管理系統(tǒng)可以立即開(kāi)始進(jìn)行。1.3論文框架安排本文詳細(xì)介紹了基于Android點(diǎn)餐系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)全過(guò)程。從開(kāi)始
20、到程序設(shè)計(jì)的實(shí)現(xiàn),將在一下的幾章中予以介紹:第1章 緒論,這一章主要是對(duì)本次畢業(yè)設(shè)計(jì)所開(kāi)發(fā)的系統(tǒng)進(jìn)行問(wèn)題的定義,通過(guò)問(wèn)題的定義明白需要做些什么,并且對(duì)開(kāi)發(fā)內(nèi)容簡(jiǎn)單的介紹了一下;同時(shí)本章還對(duì)課題的研究背景與研究意義進(jìn)行分析,對(duì)開(kāi)發(fā)本系統(tǒng)的可行性分析還有對(duì)論文各章內(nèi)容的簡(jiǎn)要介紹。第2章 開(kāi)發(fā)語(yǔ)言說(shuō)明,對(duì)涉及到的理論知識(shí)和用到的開(kāi)發(fā)工具做相關(guān)闡述。第3章 點(diǎn)餐系統(tǒng)分析,主要分析了本系統(tǒng)開(kāi)發(fā)的可行性還有需求分析等等。第4章 點(diǎn)餐系統(tǒng)設(shè)計(jì),主要介紹了本系統(tǒng)的整個(gè)設(shè)計(jì)過(guò)程、設(shè)計(jì)思路以及設(shè)計(jì)中應(yīng)該注意的問(wèn)題。第5章 系統(tǒng)實(shí)現(xiàn)與測(cè)試,主要介紹了本設(shè)計(jì)的實(shí)現(xiàn)環(huán)境和實(shí)現(xiàn),同時(shí)也介紹了測(cè)試在軟件開(kāi)發(fā)環(huán)節(jié)中的重要性和
21、給出本系統(tǒng)的測(cè)試過(guò)程與結(jié)論。第6章 總結(jié)與展望,總結(jié)了近兩三個(gè)月的做畢業(yè)設(shè)計(jì)過(guò)程中的一些心得和體會(huì),最后做了展望。最后:致謝、參考文獻(xiàn)。2 開(kāi)發(fā)語(yǔ)言說(shuō)明2.1 開(kāi)發(fā)工具及環(huán)境簡(jiǎn)介Eclipse Classic 3.7.2Eclipse 是一個(gè)開(kāi)放源代碼的、基于 Java 的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)HYPERLINK /view/18979.htm插件組件構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開(kāi)發(fā)工具(Java Development Kit,JDK)。 Eclipse是著名的跨平臺(tái)的自由HYPERLINK /vi
22、ew/14867.htm集成開(kāi)發(fā)環(huán)境(IDE)。最初主要用來(lái)HYPERLINK /view/229611.htmJava語(yǔ)言開(kāi)發(fā),但是目前亦有人通過(guò)插件使其作為其他計(jì)算機(jī)語(yǔ)言比如C+和Python的開(kāi)發(fā)工具。Eclipse的本身只是一個(gè)框架平臺(tái),但是眾多插件的支持使得Eclipse擁有其他功能相對(duì)固定的IDE軟件很難具有的靈活性。許多軟件開(kāi)發(fā)商以Eclipse為框架開(kāi)發(fā)自己的IDE。Eclipse 最初由OTI和IBM兩家公司的IDE產(chǎn)品開(kāi)發(fā)組創(chuàng)建,起始于1999年4月。IBM提供了最初的Eclipse代碼基礎(chǔ),包括Platform、JDT 和PDE。目前由IBM牽頭,圍繞著Eclipse項(xiàng)目
23、已經(jīng)發(fā)展成為了一個(gè)龐大的Eclipse聯(lián)盟,有150多家軟件公司參與到Eclipse項(xiàng)目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一個(gè)開(kāi)發(fā)源碼項(xiàng)目,它其實(shí)是 Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其開(kāi)放源碼,任何人都可以免費(fèi)得到,并可以在此基礎(chǔ)上開(kāi)發(fā)各自的插件,因此越來(lái)越受人們關(guān)注。近期還有包括Oracle在內(nèi)的許多大公司也紛紛加入了該項(xiàng)目,并宣稱(chēng)Eclipse將來(lái)能成為可進(jìn)行任何語(yǔ)言開(kāi)發(fā)的IDE集大成者,使用者只需下載各種語(yǔ)言的插件即可。SQLit
24、e3SQLite3是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)聯(lián)式HYPERLINK /view/68446.htm數(shù)據(jù)庫(kù)管理系統(tǒng)。它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的HYPERLINK /view/880.htm操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開(kāi)源世界著名的數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)講,它的處理速度比他們都快。SQLite第一個(gè)HYPERLINK /v
25、iew/707803.htmAlpha版本誕生于2000年5月. 至今已經(jīng)有10個(gè)年頭,SQLite也迎來(lái)了一個(gè)版本 SQLite 3已經(jīng)發(fā)布。ADT目前HYPERLINK /view/1241829.htmAndroid開(kāi)發(fā)所用的開(kāi)發(fā)工具是Eclipse,在HYPERLINK /view/23576.htmEclipse編譯IDE環(huán)境中,安裝ADT,為Android開(kāi)發(fā)提供開(kāi)發(fā)工具的升級(jí)或者變更,簡(jiǎn)單理解為在Eclipse下開(kāi)發(fā)工具的升級(jí)下載工具。Android SDKSDK:(software development kit)HYPERLINK /view/37.htm軟件開(kāi)發(fā)工具包。被H
26、YPERLINK /view/4033757.htm軟件開(kāi)發(fā)工程師用于為特定的HYPERLINK /view/600107.htm軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立HYPERLINK /view/7886.htm應(yīng)用軟件的開(kāi)發(fā)工具的集合。因此,Android SDK 指的既是HYPERLINK /view/1241829.htmAndroid專(zhuān)屬的軟件開(kāi)發(fā)工具包。 2.2 Android系統(tǒng)Android一詞的本義指“機(jī)器人”同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名稱(chēng)該平臺(tái)由操作系統(tǒng)、中間件、用戶(hù)界面和應(yīng)用軟件組成,號(hào)稱(chēng)是首個(gè)為移動(dòng)終端打
27、造的真正開(kāi)放和完整的移動(dòng)軟件。 Android是基于Linux內(nèi)核的軟件平臺(tái)和操作系統(tǒng)早期由Google開(kāi)發(fā)在華注冊(cè)商標(biāo)名為“安致”,后由開(kāi)放手機(jī)聯(lián)盟Open Handset Alliance開(kāi)發(fā)。它采用了軟件堆層software stack,又名以軟件疊層的架構(gòu),主要分為三部分。低層以Linux內(nèi)核工作為基礎(chǔ),只提供基本功能,其他的應(yīng)用軟件則由各公司自行開(kāi)發(fā),以Java作為編寫(xiě)程序的一部分。另外為了推廣此技術(shù),Google和其它幾十個(gè)手機(jī)公司建立了開(kāi)放手機(jī)聯(lián)盟。Android在未公開(kāi)之前常被傳聞為Google電話或gPhone。大多傳聞?wù)J為Google開(kāi)發(fā)的是自己的手機(jī)電話產(chǎn)品,而不是一套軟
28、件平臺(tái)。到了2010年1月,Google開(kāi)始發(fā)表自家品牌手機(jī)電話的Nexus One,目前最新SDK版本為Android 4.0.3。 2.2.1 Android Features特性 Android系統(tǒng)有如下的幾大特性1 應(yīng)用程序框架 支持組件的重用與替換 Dalvik虛擬機(jī) 專(zhuān)門(mén)為移動(dòng)設(shè)備做了優(yōu)化 內(nèi)部集成瀏覽器 該瀏覽器基于開(kāi)源的WebKit引擎 優(yōu)化的圖形庫(kù) 包括2D和3D圖形庫(kù)3D圖形庫(kù)基于OpenGL ES SQLite 用作結(jié)構(gòu)化的數(shù)據(jù)存儲(chǔ) 多媒體支持 包括常見(jiàn)的音頻、視頻和靜態(tài)印象文件格式如MPEG4, MP3, AAC, AMR, JPG, PNG GSM電話依賴(lài)于硬件 藍(lán)牙
29、Bluetooth, EDGE, 3G, and WiFi 依賴(lài)于硬件 照相機(jī)GPS指南針和加速度計(jì) 依賴(lài)于硬件 豐富的開(kāi)發(fā)環(huán)境 包括設(shè)備模擬器、調(diào)試工具、內(nèi)存及性能分析圖表;2.2.2 Android系統(tǒng)的四大組件 在Android系統(tǒng)中為我們提供了四大基本組件每個(gè)組件是一個(gè)視圖但是有些是可見(jiàn)的有些是不可見(jiàn)的視圖像ActivityContentProvider是可見(jiàn)的視圖Service和BroadcastReceiver是不可見(jiàn)的它們只在系統(tǒng)的后臺(tái)運(yùn)行。下面分別介紹四大組件3 1Activity 簡(jiǎn)介 在Android系統(tǒng)中Activity提供可視化的用戶(hù)界面,一個(gè)Android應(yīng)用通常由多
30、個(gè)Activity組成。多個(gè)Activity組成了Activity棧Stack,當(dāng)前活動(dòng)的Activity處于棧頂。Activity有自己的生命周期,由Android系統(tǒng)來(lái)控制。 2Service 簡(jiǎn)介 顧名思義Service就是運(yùn)行在后臺(tái)的一種服務(wù)程序一般很少和用戶(hù)交互因此沒(méi)有可視化界面定義一個(gè)Service類(lèi)比較簡(jiǎn)單,只要繼承Service類(lèi),實(shí)現(xiàn)其生命周期中的方法就可以了。一個(gè)定義好的Service必須在AndroidManifest.xml配置文件注冊(cè)通過(guò)元素聲明才能使用.Service有自己的生命周期我們可以調(diào)用startService()啟動(dòng)一個(gè)Service或者bindServi
31、ce()方法來(lái)綁定一個(gè)存在的Service 3Broadcast Receiver 簡(jiǎn)介 Broadcast Receiver 顧名思義廣播接收器,它和事件處理機(jī)制類(lèi)似,只不過(guò)事件處理機(jī)制是程序組件級(jí)別的。例如某個(gè)按鈕的單擊事件而廣播事件處理機(jī)制是系統(tǒng)級(jí)別的。到目前為止我們可以使用Intent來(lái)啟動(dòng)一個(gè)程序組件,我們還可以通過(guò)使用sendBroadcast()方法來(lái)發(fā)起一個(gè)系統(tǒng)級(jí)別的事件廣播來(lái)傳遞消息。我們可以在你的應(yīng)用程序中實(shí)現(xiàn)Broadcast Receiver來(lái)監(jiān)聽(tīng)和響應(yīng)這些廣播的Intent ;4ContentProvider簡(jiǎn)介 Content Provider 用來(lái)保存和檢索數(shù)據(jù)并
32、且使應(yīng)用程序之間相互訪問(wèn)數(shù)據(jù)成為可能。它是跨應(yīng)用程序共享數(shù)據(jù)的唯一方法。 Android 為常用的數(shù)據(jù)類(lèi)型如音視頻、圖片和聯(lián)系方式等提供了大量的Content Provider。它們被定義在vider包下面。通過(guò)這樣定義好ContentProvider 我們可以方便的進(jìn)行數(shù)據(jù)操作。當(dāng)然我們必須擁有適當(dāng)?shù)臋?quán)限。我們也可以自己來(lái)定ContentProvider共享我們的數(shù)據(jù)方便用戶(hù)的訪問(wèn)。3 點(diǎn)餐系統(tǒng)分析本章首先介紹了基于Android點(diǎn)餐系統(tǒng)的可行性,確立了開(kāi)發(fā)基礎(chǔ),直接詳細(xì)闡述了系統(tǒng)各個(gè)模塊的詳細(xì)需求分析,接著分析了系統(tǒng)的研究路線和系統(tǒng)的流程設(shè)計(jì),最后對(duì)系統(tǒng)的運(yùn)作流程做了分析。3.1概述系統(tǒng)分
33、析是在總體規(guī)劃的指導(dǎo)下,對(duì)某個(gè)或若干個(gè)子系統(tǒng)進(jìn)行深入仔細(xì)地調(diào)查研究,確定新系統(tǒng)邏輯功能的過(guò)程。這一階段的主要任務(wù)是由系統(tǒng)分析員了解每個(gè)業(yè)務(wù)流程,工作流程,廣大用戶(hù)的需求,運(yùn)用系統(tǒng)開(kāi)發(fā)理論、開(kāi)發(fā)方法和開(kāi)發(fā)技術(shù)設(shè)計(jì)出一個(gè)智能化的軟件系統(tǒng)。3.1.1系統(tǒng)分析的原則在系統(tǒng)分析中存在很多困難,為了克服困難,做好分析工作,在進(jìn)行系統(tǒng)分析時(shí)應(yīng)遵循系統(tǒng)分析的原則,這樣才能保證分析工作能夠順利進(jìn)行,系統(tǒng)分析的原則有:1.邏輯設(shè)計(jì)與物理設(shè)計(jì)分開(kāi)的原則2.面向用戶(hù)的原則3.結(jié)構(gòu)化分析的原則通過(guò)實(shí)際調(diào)查并與相關(guān)用戶(hù)交流后,分析基于Android點(diǎn)餐系統(tǒng)的具體的要求,確定本系統(tǒng)的邏輯功能,以滿(mǎn)足用戶(hù)的各項(xiàng)要求,完成相應(yīng)
34、的各項(xiàng)功能,提高網(wǎng)站的實(shí)用水平。在近期目標(biāo)完成后,該系統(tǒng)應(yīng)該有很強(qiáng)的擴(kuò)充性,便于在此基礎(chǔ)上進(jìn)行擴(kuò)充式開(kāi)發(fā),為以后的發(fā)展及擴(kuò)充打好基礎(chǔ)。 3.1.2系統(tǒng)分析的方法該系統(tǒng)采用以抽象和分解為手段,并且采用結(jié)構(gòu)化分析方法進(jìn)行系統(tǒng)分析,根據(jù)實(shí)際調(diào)查研究,對(duì)系統(tǒng)進(jìn)行自頂向下的逐層分解,逐步細(xì)分,逐步求精,建立新系統(tǒng)的邏輯模型,這個(gè)邏輯模型將盡可能避免使用計(jì)算機(jī)術(shù)語(yǔ),讓其盡可能的簡(jiǎn)單化、通俗化,便于設(shè)計(jì)者和瀏覽者的溝通與交流經(jīng)驗(yàn)。結(jié)構(gòu)化分析方法的基本思想是該系統(tǒng)采用結(jié)構(gòu)化分析方法,以抽象和分解為手段,對(duì)系統(tǒng)進(jìn)行自頂向下的逐層分解,逐步細(xì)分,逐步求精,從而達(dá)到易于理解的目的。3.2系統(tǒng)需求分析客戶(hù)端功能需求分
35、析:登錄、注冊(cè):用戶(hù)使用系統(tǒng)時(shí)需要先登錄,如果沒(méi)有賬號(hào)可以通過(guò)注冊(cè)模塊注冊(cè)一個(gè)賬號(hào);菜譜查詢(xún):查詢(xún)菜譜列表信息,支持用戶(hù)關(guān)鍵字搜索;詳情查詢(xún):可以查詢(xún)一個(gè)菜的詳細(xì)信息,包括價(jià)格、介紹和數(shù)量;在線點(diǎn)餐:支持用戶(hù)在線下單點(diǎn)餐;選擇座位:支持用戶(hù)在手機(jī)上選擇座位;我的訂單:用戶(hù)可以查看自己已經(jīng)下單的信息,可以刪除掉自己的訂單;服務(wù)端功能分析:登錄模塊:管理員登錄使用系統(tǒng);菜譜管理:管理員可以查看當(dāng)前系統(tǒng)的菜譜信息,可以添加、修改或者刪除一個(gè)菜譜信息;用戶(hù)管理:管理員可以查看到當(dāng)前系統(tǒng)已經(jīng)注冊(cè)的用戶(hù)信息,可以刪除掉一個(gè)用戶(hù)信息;類(lèi)型管理:管理員可以查看當(dāng)前系統(tǒng)的菜譜類(lèi)型信息,可以添加、修改或者刪除一個(gè)
36、菜譜類(lèi)型信息;訂單管理:管理員可以查看到當(dāng)前的所有訂單信息,可以修改訂單狀態(tài),例如把一個(gè)進(jìn)行中的訂單修改為已經(jīng)完成;3.3系統(tǒng)流程分析在系統(tǒng)分析和開(kāi)發(fā)系統(tǒng)過(guò)程中,采用了一些相對(duì)比較成熟、安全性較高、運(yùn)行比較穩(wěn)定的技術(shù)。這些技術(shù)貫穿了整個(gè)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)過(guò)程,是設(shè)計(jì)和實(shí)現(xiàn)各個(gè)模塊的基礎(chǔ)技術(shù),只有運(yùn)用先進(jìn)的設(shè)計(jì)模式和開(kāi)發(fā)技術(shù),才能保證開(kāi)發(fā)工作順利地進(jìn)行,才能保證系統(tǒng)設(shè)計(jì)的合理性和靈活性,才能保證各個(gè)功能模塊的穩(wěn)定性。首先本系統(tǒng)用戶(hù)在使用系統(tǒng)前都必須經(jīng)過(guò)用戶(hù)登錄驗(yàn)證,只有驗(yàn)證通過(guò)的用戶(hù)才能進(jìn)入系統(tǒng), 整個(gè)系統(tǒng)的流程圖如圖3.1所示。圖3.1 系統(tǒng)流程圖4 點(diǎn)餐系統(tǒng)詳細(xì)設(shè)計(jì)4.1 系統(tǒng)設(shè)計(jì)原則系統(tǒng)設(shè)計(jì)
37、是確定系統(tǒng)如何建立的過(guò)程。良好的軟件系統(tǒng)來(lái)源于良好的系統(tǒng)設(shè)計(jì)。系統(tǒng)設(shè)計(jì)應(yīng)該提供完整、準(zhǔn)確、規(guī)范的系統(tǒng)設(shè)計(jì)文檔。在系統(tǒng)設(shè)計(jì)中,首先應(yīng)該注意的是設(shè)計(jì)的統(tǒng)一和準(zhǔn)確。設(shè)計(jì)統(tǒng)一即將系統(tǒng)視為一個(gè)有機(jī)整體,要求設(shè)計(jì)具有統(tǒng)一的設(shè)計(jì)規(guī)范和標(biāo)準(zhǔn)。設(shè)計(jì)準(zhǔn)確即設(shè)計(jì)描述應(yīng)該力求避免模糊或二義性。此外,在進(jìn)行系統(tǒng)設(shè)計(jì)過(guò)程中,還應(yīng)該遵循的主要原則如下。1、適用性原則系統(tǒng)總的目的是保證系統(tǒng)功能目標(biāo)的實(shí)現(xiàn),即滿(mǎn)足客戶(hù)的需求,是所有應(yīng)用軟件最基本的原則。在滿(mǎn)足系統(tǒng)需求的前提下,應(yīng)該從系統(tǒng)用戶(hù)角度考慮,使設(shè)計(jì)的系統(tǒng)操作簡(jiǎn)單化,易用化。應(yīng)該以降低系統(tǒng)的成本為目標(biāo),避免一味追求技術(shù)上的先進(jìn)而不考察應(yīng)用效益。沒(méi)有市場(chǎng)和應(yīng)用前景的軟件項(xiàng)目
38、開(kāi)發(fā)是失敗的。2、可靠性安全性原則可靠性和安全性是系統(tǒng)重要的需求之一,也是系統(tǒng)設(shè)計(jì)質(zhì)量的重要指標(biāo)。點(diǎn)餐系統(tǒng)工作在網(wǎng)絡(luò)環(huán)境中,對(duì)于現(xiàn)在大量存在于網(wǎng)絡(luò)的病毒、黑客攻擊等安全威脅,應(yīng)該具有一定的防御能力,對(duì)于網(wǎng)絡(luò)帶寬和訪問(wèn)量等外界運(yùn)行環(huán)境的變化,應(yīng)該具有較強(qiáng)的適應(yīng)能力。只有安全可靠的系統(tǒng)才能發(fā)揮其應(yīng)有的功能。3、可擴(kuò)展性原則系統(tǒng)的設(shè)計(jì)應(yīng)該提供可擴(kuò)展能力,以滿(mǎn)足未來(lái)外語(yǔ)系工作需求的發(fā)展和變化。主要可以采用分布式設(shè)計(jì)、系統(tǒng)結(jié)構(gòu)模塊化設(shè)計(jì)等技術(shù)手段,把系統(tǒng)設(shè)計(jì)為多個(gè)功能相對(duì)獨(dú)立的模塊,降低系統(tǒng)的禍合度,提高系統(tǒng)的可擴(kuò)展性。希望通過(guò)Android技術(shù)和服務(wù)端Servlet的支持,設(shè)計(jì)出一個(gè)基于Android
39、點(diǎn)餐系統(tǒng),設(shè)計(jì)過(guò)程中希望能夠從效能、邏輯和穩(wěn)定性等多方面進(jìn)行綜合考慮,力求最后產(chǎn)品界面能夠一目了然,讓用戶(hù)容易上手并且不容易出錯(cuò)。4.2 系統(tǒng)設(shè)計(jì)目標(biāo)在系統(tǒng)分析的基礎(chǔ)上,設(shè)計(jì)出能滿(mǎn)足預(yù)定目標(biāo)的系統(tǒng)的過(guò)程。系統(tǒng)設(shè)計(jì)內(nèi)容主要包括:確定設(shè)計(jì)方針和方法,將系統(tǒng)分解為若干子系統(tǒng),確定各子系統(tǒng)的目標(biāo)、功能及其相互關(guān)系,決定對(duì)子系統(tǒng)的管理體制和控制方式,對(duì)各子系統(tǒng)進(jìn)行技術(shù)設(shè)計(jì)和評(píng)價(jià),對(duì)全系統(tǒng)進(jìn)行技術(shù)設(shè)計(jì)和評(píng)價(jià)等。本系統(tǒng)是設(shè)計(jì)目標(biāo)是建立一個(gè)基于Android點(diǎn)餐系統(tǒng),可以滿(mǎn)足用戶(hù)對(duì)日常文檔的管理和交流工作。用戶(hù)界面友好、操作簡(jiǎn)單,每一步驟的操作都經(jīng)過(guò)精心的設(shè)計(jì),將復(fù)雜的統(tǒng)計(jì)運(yùn)算過(guò)程隱藏于簡(jiǎn)單的操作之下,系統(tǒng)的
40、設(shè)計(jì)能降低使用前的培訓(xùn)、實(shí)施和使用中的維護(hù)時(shí)間。通過(guò)合理而先進(jìn)的網(wǎng)絡(luò)設(shè)計(jì)及軟、硬件的優(yōu)化選型,足可保證系統(tǒng)的可靠性與容錯(cuò)性。系統(tǒng)以用戶(hù)需求為目標(biāo),以方便用戶(hù)為原則,處處為使用者著想。 4.3系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)在設(shè)計(jì)一款軟件時(shí)一般都會(huì)把它分成幾個(gè)模塊,在模塊的基礎(chǔ)上還會(huì)再分小模塊,這樣就達(dá)到了軟件模塊化設(shè)計(jì)的要求,然后再對(duì)各個(gè)小模塊進(jìn)行詳細(xì)設(shè)計(jì)和編寫(xiě),采用模塊化的管理方式可以使軟件結(jié)構(gòu)更清晰,也使得軟件的管理更有秩序,使別人容易理解和閱讀,但是這些模塊也要根據(jù)別的模塊來(lái)設(shè)計(jì)和約束,不能隨便設(shè)計(jì)脫離框架,設(shè)計(jì)完成后需要把每個(gè)設(shè)計(jì)完成的模塊根據(jù)總體框架結(jié)合起來(lái)。整個(gè)程序分為客戶(hù)端和服務(wù)端兩部分,客戶(hù)端
41、基于Android系統(tǒng),服務(wù)端采用Servlet提供服務(wù),后臺(tái)使用MySQL數(shù)據(jù)庫(kù)。在整個(gè)系統(tǒng)中,客戶(hù)端負(fù)責(zé)采集數(shù)據(jù)和顯示的工作,對(duì)于客戶(hù)的輸入,輸入端會(huì)將信息發(fā)送至服務(wù)端的Servlet上,Servlet接收信息之后,會(huì)對(duì)數(shù)據(jù)庫(kù)進(jìn)行相關(guān)的操作,并將結(jié)果發(fā)送回客戶(hù)端,客戶(hù)端再進(jìn)行處理,從中得到結(jié)果。4.4服務(wù)端數(shù)據(jù)庫(kù)設(shè)計(jì)本系統(tǒng)需要一個(gè)服務(wù)端來(lái)為客戶(hù)端提供數(shù)據(jù)接口服務(wù),服務(wù)端采用MySQL數(shù)據(jù)庫(kù)來(lái)存放數(shù)據(jù), MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。本系統(tǒng)共用到5個(gè)數(shù)據(jù)庫(kù)表,每個(gè)表的詳細(xì)設(shè)計(jì)結(jié)構(gòu):表名:
42、admins序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1idint11是是否auto_increment2loginidvarchar255是3passwordsvarchar255是表名:dishes序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1idint11是是否auto_increment2titletext是標(biāo)題3typeidint11是類(lèi)型ID4typenametext是類(lèi)型名稱(chēng)5introtext是詳細(xì)介紹6img_urlvarchar255是圖片7pricedouble11是價(jià)格8amountdouble11是數(shù)量表名:orders序號(hào)列名數(shù)據(jù)類(lèi)型標(biāo)識(shí)主鍵允許空說(shuō)明1idint是是否aut
43、o_increment2useridint是3usernametext是4seattext是5statusint是6dishesidint是7pricedouble是8amountdouble是9createtimevarchar是表名:seats序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1idint11是是否auto_increment2noint11是3stateint11是座位表名:types序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1idint11是是否auto_increment2typenametext是類(lèi)型名稱(chēng)表名:users序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1idint11是是否a
44、uto_increment2loginidvarchar255是登錄賬號(hào)3nametext是姓名4passwordsvarchar255是密碼5系統(tǒng)實(shí)現(xiàn)與測(cè)試5.1 搭建Android開(kāi)發(fā)環(huán)境任何事物要運(yùn)行,都要有它的環(huán)境,Android也有它的環(huán)境才能夠運(yùn)行,下面介紹Android的開(kāi)發(fā)環(huán)境配置。搭建開(kāi)發(fā)環(huán)境需要的軟件:操作系統(tǒng):window XP或linux軟件包:Android SDK(Software Development kit Java Development kit) 、ADT(Android Develoopment Tool)IDE環(huán)境:Eclipse IDE+ADT Ec
45、lipse3.3以上JDK:Java Runtime Environment虛擬機(jī) 、(JDK)Java Development kit安裝步驟如下:第一步:安裝Java虛擬機(jī)sun-java6-jdk版本。第二步:安裝Eclipse3.5工具,到官網(wǎng) HYPERLINK /downloads/ /downloads/,選擇版本下載后進(jìn)行安裝。(如圖2.2)Eclipse工具的版本如圖5.1所示:圖5.1 Eclipse工具的版本圖第三步:安裝Android SDK:首先要下載SDK,可以在這個(gè)網(wǎng)址下載Http:/developer.A/sdk ,選擇相應(yīng)的系統(tǒng)進(jìn)行安裝。sdk下載的地址圖如圖
46、5.2所示:圖5.2sdk下載的地址圖第四步:安裝Android ADT插件。運(yùn)行Eclipse,選擇help-install new software 選擇add,將會(huì)彈出一個(gè)【Add Site】對(duì)話框?!続dd Site】對(duì)話框如圖5.3:圖5.3 【Add Site】對(duì)話框圖點(diǎn)擊OK,選擇要安裝的軟件,占next,然后選擇接受協(xié)議,直到安裝成功,重啟Eclipse軟件,設(shè)置Android SDK Home,Window-refrence。設(shè)置Android SDK Home界面如圖5.4所示:圖5.4設(shè)置Android SDK Home界面圖在SDK location中輸入SDK Too
47、ls路D:AndroidsoftwareAndroid-sdk-windows 點(diǎn)擊OK,這樣Android環(huán)境就已經(jīng)搭建成功了。5.2系統(tǒng)實(shí)現(xiàn)5.2.1 登錄模塊實(shí)現(xiàn)本系統(tǒng)使用前用戶(hù)需要登錄驗(yàn)證,在登錄界面中,通過(guò)繼承一個(gè)Activity來(lái)實(shí)現(xiàn),界面上的控件用到了EditText、Button和CheckBox等等組件, EditText主要用來(lái)實(shí)現(xiàn)用戶(hù)帳號(hào)和密碼的輸入。登錄時(shí)用戶(hù)需要提供賬號(hào)和密碼,然后通過(guò)點(diǎn)擊登錄按鈕來(lái)發(fā)送登錄請(qǐng)求,請(qǐng)求發(fā)出后,系統(tǒng)會(huì)通過(guò)HTTP的方式把帳號(hào)和密碼發(fā)送到服務(wù)器端驗(yàn)證,并返回服務(wù)端的驗(yàn)證結(jié)果,假如驗(yàn)證通過(guò)則提示用戶(hù)登錄成功并且自動(dòng)跳轉(zhuǎn)進(jìn)入主界面,否則提示用戶(hù)
48、登錄失敗。該界面提供記住密碼成功,假如用戶(hù)在登錄時(shí)勾選了“記住密碼”復(fù)選框,則下次再進(jìn)入到本界面用戶(hù)將不需要再次輸入密碼,而只需要點(diǎn)擊登錄按鈕即可實(shí)現(xiàn)登錄操作,記住密碼的過(guò)程是通過(guò)Android平臺(tái)提供的SharedPreferences來(lái)實(shí)現(xiàn)的。當(dāng)然如果用戶(hù)還沒(méi)有登錄賬號(hào),則可以通過(guò)“注冊(cè)”按鈕鏈接到用戶(hù)注冊(cè)界面,從而注冊(cè)一個(gè)新的賬號(hào);具體的實(shí)現(xiàn)效果如圖5.1所示:圖5-1 登錄界面5.2.2 菜譜大全模塊實(shí)現(xiàn)用戶(hù)成功登陸進(jìn)入系統(tǒng)之后可以查看到當(dāng)前系統(tǒng)所有菜譜信息,包括菜譜的圖片、名稱(chēng)、單價(jià)和詳細(xì)介紹信息,系統(tǒng)用了一個(gè)ListView組件來(lái)顯示系統(tǒng)的菜譜信息,同時(shí)用戶(hù)也可以通過(guò)界面左上角的搜
49、索按鈕來(lái)搜索菜譜信息,用戶(hù)點(diǎn)擊一條信息之后可以查看一個(gè)菜譜的詳細(xì)介紹。同時(shí),用戶(hù)也可以通過(guò)該界面左上角的搜索按鈕來(lái)打開(kāi)搜索界面,在搜索界面中,用戶(hù)可以輸入自己想搜索的標(biāo)題來(lái)進(jìn)行搜索,搜索到的菜譜信息將會(huì)被顯示在列表中。彈出的搜索框可以通過(guò)AlertDialog.Builder來(lái)實(shí)現(xiàn);實(shí)現(xiàn)的核心代碼:private class loadAsyncTask extends AsyncTask Overrideprotected void onPreExecute() dialog = ProgressDialog.show(DishesListActivity.this, 提示, 獲取中.);Ov
50、errideprotected String doInBackground(String. params) String json = null;serverUrl = AppConstant.getUrl(getApplicationContext() + ServletService?Action=getdisheslist&msg=+ params0;json = httpHelper.HttpRequest(serverUrl);return json;Overrideprotected void onPostExecute(String result) super.onPostExe
51、cute(result);dialog.dismiss();list = new ArrayList();if (result != null & result.trim().length() 0) try jsonArray = new JSONArray(result);for (int i = 0; i jsonArray.length(); i+) jsonObject = jsonArray.getJSONObject(i);dishes model = new dishes();model.setId(jsonObject.getInt(id);model.setIntro(jso
52、nObject.getString(intro);model.setImg_url(jsonObject.getString(img_url);model.setTitle(jsonObject.getString(title);model.setPrice(jsonObject.getDouble(price);list.add(model); catch (JSONException e) e.printStackTrace(); else toastUtil.show(沒(méi)有數(shù)據(jù));adapter = new DishesAdapter(DishesListActivity.this, l
53、ist);listview1.setAdapter(adapter);具體的實(shí)現(xiàn)效果如圖5.2所示:圖5-2菜譜大全界面5.2.3 在線選擇座位模塊用戶(hù)在菜譜詳情介紹頁(yè)面點(diǎn)擊右上角的“下單”按鈕,即可進(jìn)入到選擇座位界面,在該界面用戶(hù)可以看到一排6行6列的座位示意圖,座位圖中有三種狀態(tài),分別為可選、已選和已被選,其中可選表示當(dāng)前是空閑狀態(tài),用戶(hù)可以選擇,已選表示該座位已被當(dāng)前用戶(hù)選擇,已被選表示該座位已經(jīng)被其他用戶(hù)選擇。用戶(hù)座位選擇完畢后可以通過(guò)右上角的“提交”按鈕來(lái)提交訂單;實(shí)現(xiàn)核心代碼:private class loadAsyncTask extends AsyncTask Overrid
54、eprotected void onPreExecute() dialog = ProgressDialog.show(PlaceOrderActivity.this, 提示, 獲取中,請(qǐng)稍后.);Overrideprotected String doInBackground(String. params) String urlString = AppConstant.getUrl(getApplicationContext() + ServletService?Action=getOneRow;urlString = urlString + &Table=seats;String json
55、= httpHelper.HttpRequest(urlString);return json;Overrideprotected void onPostExecute(String result) super.onPostExecute(result);dialog.dismiss();if (result.trim().length() 0) try jsonArray = new JSONArray(result);LinearLayout ll = null;for (int i = 0; i jsonArray.length(); i+) jsonObject = jsonArray
56、.getJSONObject(i);if (i % 6 = 0) ll = new LinearLayout(PlaceOrderActivity.this);ll.setOrientation(LinearLayout.HORIZONTAL);ll.setGravity(Gravity.CENTER);final ImageView imageView = new ImageView(PlaceOrderActivity.this);imageView.setPadding(5, 5, 5, 5);imageView.setTag(jsonObject.getInt(id) + , + js
57、onObject.getInt(state) + ,0);if (jsonObject.getInt(state) = 0) imageView.setImageResource(R.drawable.seat_unavailable); else imageView.setImageResource(R.drawable.seat_sel);imageView.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) String tag = v.getTag().toString();Strin
58、g id = tag.split(,)0;String state = tag.split(,)1;/ 是否被選擇String sel = tag.split(,)2;/ 是否選中if (1.equals(state) toastUtil.show(該座位已被選); else if (1.equals(sel) imageView.setImageResource(R.drawable.seat_unavailable);imageView.setTag(id + , + state + , + 0);hashMap.remove(Integer.valueOf(id);setSel(); e
59、lse imageView.setImageResource(R.drawable.seat_selected);imageView.setTag(id + , + state + , + 1);hashMap.put(Integer.valueOf(id), Integer.valueOf(id);setSel(););ll.addView(imageView);if (i % 6 = 0) llSeat.addView(ll); catch (JSONException e) e.printStackTrace();具體的實(shí)現(xiàn)效果如圖5.3所示:圖5.3選擇座位界面5.2.4 我的訂單模塊
60、用戶(hù)的下單信息將會(huì)被記錄到服務(wù)端中,用戶(hù)可以隨時(shí)通過(guò)手機(jī)菜單鍵來(lái)打開(kāi)查看自己已經(jīng)下過(guò)的訂單信息,包括菜式信息、下單數(shù)量、選擇的座位、下單時(shí)間和當(dāng)前的訂單狀態(tài),同時(shí)用戶(hù)也可以長(zhǎng)按一條訂單信息來(lái)彈出刪除菜單,用戶(hù)可以刪除一條訂單信息。實(shí)現(xiàn)核心代碼:private class loadAsyncTask extends AsyncTask Overrideprotected void onPreExecute() dialog = ProgressDialog.show(MyOrdersListActivity.this, 提示, 獲取中.);Overrideprotected String doI
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 從生活中學(xué)習(xí)提升綜合素養(yǎng)計(jì)劃
- 揮發(fā)性有機(jī)物行業(yè)相關(guān)投資計(jì)劃提議范本
- 個(gè)性化教學(xué)與學(xué)生差異化發(fā)展的探索計(jì)劃
- 劇裝道具相關(guān)工藝美術(shù)品行業(yè)相關(guān)投資計(jì)劃提議范本
- 課程改革與新教材實(shí)施計(jì)劃
- ZRO2陶瓷制品行業(yè)相關(guān)投資計(jì)劃提議
- 環(huán)保教育在班級(jí)活動(dòng)中的融入計(jì)劃
- 《保險(xiǎn)經(jīng)營(yíng)與監(jiān)管》課件
- 2023-2024學(xué)年江蘇省南京市江寧區(qū)部編版五年級(jí)上冊(cè)期末考試語(yǔ)文試卷(原卷版)-A4
- 《雞白痢培訓(xùn)課件》課件
- 《沙盤(pán)游戲與大學(xué)生心理治療》課程教學(xué)大綱
- 部編版五年級(jí)上冊(cè)語(yǔ)文期末復(fù)習(xí)知識(shí)點(diǎn)總結(jié)
- 中醫(yī)內(nèi)科學(xué)肥胖課件
- 航天航空與國(guó)防行業(yè)“鑄劍”系列深度報(bào)告(五):軍品定價(jià)機(jī)制改革~激勵(lì)與補(bǔ)償?shù)乃囆g(shù)
- 國(guó)開(kāi)公共政策概論形考任務(wù)4試題及答案
- (完整版)馬克思主義基本原理概論知識(shí)點(diǎn)
- 鐘點(diǎn)工雇傭協(xié)議書(shū)3篇
- 電子耳蝸植入術(shù)后護(hù)理查房課件
- 星巴克哈佛商學(xué)院案例
- ICS(國(guó)際標(biāo)準(zhǔn)分類(lèi)法)分類(lèi)
- 【規(guī)劃】高中語(yǔ)文教師專(zhuān)業(yè)成長(zhǎng)五年規(guī)劃
評(píng)論
0/150
提交評(píng)論