版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔傾情為你奉上精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)專心專注專業(yè)精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)本 科 畢 業(yè) 論 文基于安卓的超市購物系統(tǒng)的設(shè)計與實現(xiàn)Design and Implementation of Supermarket Shopping System Based on Android 學(xué)院名稱: 專業(yè)班級: 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師姓名: 指導(dǎo)教師職稱: 畢業(yè)設(shè)計(論文)原創(chuàng)性聲明和使用授權(quán)說明原創(chuàng)性聲明作 者 簽 名: 日 期: 指導(dǎo)教師簽名: 日 期: 使用授權(quán)說明作者簽名: 日 期: 目 錄TOC o 1-3 h u 9588991113557778900
2、011112345基于安卓的超市購物系統(tǒng)的設(shè)計與實現(xiàn)摘要:在現(xiàn)代生活中,安卓智能手機的各類應(yīng)用所帶來的便利已經(jīng)影響我們生活的方方面面,對人們的生產(chǎn)生活、衣食住行產(chǎn)生了積極的作用。同時,手機智能平臺的快速發(fā)展也給各行各業(yè)帶來了新挑戰(zhàn),對于任意行業(yè),如果不能適應(yīng)信息化的潮流、跟上時代發(fā)展的步伐,都會被殘酷的市場競爭所淘汰。本論文課題是基于安卓的超市購物系統(tǒng)的設(shè)計與實現(xiàn),利用移動開發(fā)技術(shù)初步實現(xiàn)了用基本的智能手機來管理超市的日常經(jīng)營。該系統(tǒng)改善了傳統(tǒng)購物體驗的多種弊端,最終目的當(dāng)然就是給用戶提供一種方便的購物體驗。本設(shè)計是基于安卓的一款便于在智能平臺上購物的手機APP,開發(fā)工具是Android St
3、udio,編程語言用的是Java,開發(fā)實現(xiàn)了引導(dǎo)界面、可自由加載和轉(zhuǎn)換的菜單以及其他模塊的功能。用手機代替超市實體店從而實現(xiàn)了足不出戶的手機超市購物,為人們節(jié)約了排隊等待付款、挑選商品的時間。本系統(tǒng)有較強的實用性,因為手機攜帶很方便,該APP操作起來也不費力,要實現(xiàn)的功能也相對完善,一些購物系統(tǒng)的經(jīng)典頁面比如添加商品至購物車中、查看已提交的訂單、秒殺很多做活動的商品等也能正常運行和顯示,更重要的是本軟件已在市內(nèi)的若干超市進行成功的模擬測試,并成功進行了小規(guī)模的實際應(yīng)用,反饋回來的信息表明其市場應(yīng)用前景非常廣闊。關(guān)鍵字:安卓開發(fā) Java程序設(shè)計語言 超市購物系統(tǒng)Design and imple
4、mentation of supermarket shopping system based on AndroidAbstract: In modern society, the convenience brought by the various applications of mobile phones has benefited all aspects of our lives, giving the production and living of the people and basic necessities of life a positive effect. At the sa
5、me time, the rapid development of intelligent platform also brings new challenges to all walks of life, for any industry, If you can not adapt to the trend of information, to keep up with the pace of development of the times, you will be buried by the brutal competition in the market. The topic of t
6、his thesis is the design and implementation of the supermarket shopping system based on Android, using mobile development technology to achieve a preliminary realization of the basic smart phone to manage the daily operation of the supermarket. The system improves the traditional shopping experience
7、 of a variety of drawbacks, of course, its final purpose is providing a novel and convenient shopping experience.The design is based on Androids mobile phone APP to facilitate shopping on the smart platform, using Android5.0 as a development tool, Java as a programming language, the development and
8、implementation of the boot interface, free to load and convert menus and other modules of the function. Using a mobile phone instead of a supermarket store so as to realize the online shopping at home, for the public to save the queue to wait, long distance run time.The system has strong practicabil
9、ity, because it is convenient to carry a mobile phone, the system is easy to operate, to achieve the function is relatively perfect, some of the classic shopping system pages, such as adding merchandise to the shopping cart, view submitted orders, spike a lot of activities to do the goods, etc. can
10、also be normal operation and display, and this software system has been in the supermarket and a fast-food chain through the simulation test under the LAN environment, and successfully carried out the practical application of small scale, the feedback information indicates that the market has a very
11、 broad application prospects.Key words: Google android SDK Java programming language Shopping system引 言現(xiàn)在的社會經(jīng)濟和網(wǎng)絡(luò)發(fā)展得愈來愈快,喜歡在手機購物的人越來越多,傳統(tǒng)的購物方式已經(jīng)滿足不了人們追求方便快捷的購物心理,現(xiàn)在手機已經(jīng)是人們不可缺少的一部分,幾乎每個人都有手機,它也是人們生活中必不可少的溝通工具。基于手機端的在線購物系統(tǒng)能使人們隨時隨地選購自己喜歡的商品,現(xiàn)在國內(nèi)的很多中、小型超市每天都要查看庫存信息還要及時更新訂單信息等,可是經(jīng)濟市場的變化不會等待,所以高效的、現(xiàn)代化的管理超
12、市的方法就受到了各大、中、小型超市的喜愛。各種實體店超市給我們的生活帶來了很多便利,不可避免的是這些實體店超市也有各種缺點,如:每天都要處理入庫的大量商品導(dǎo)致其效率降低,時刻都需要有人結(jié)算付款,人工的速度當(dāng)然是有限的而且特別容易有細(xì)微的差錯,每次有活動的商品都要重新打印價簽,其效率一定不會高。另外一方面,對于一個稍微有規(guī)模的超市來說,每天都會有商品的入庫、銷售和更新等信息需要處理,這些都要一些有經(jīng)驗的管理人員進行決策、分析和處理,不像計算機或者手機能實現(xiàn)實時分析,這樣,這些管理人員一直都不能對及時傳遞的資料進行分析和研究。因此,在進行市場調(diào)查之后,我選擇了超市購物系統(tǒng)設(shè)計題目,這種用手機客戶端
13、實現(xiàn)的購物平臺能實時、精確的掌握超市中的各項工作的工作情況,從而能使超市管理者在最短的時間、最少的人力物力的情況下加速商品的周轉(zhuǎn)率,這樣做還能滿足客戶的需求并提高服務(wù)質(zhì)量,也能夠很好的處理產(chǎn)品售價的更新等銷售問題,讓超市的管理人員面對市場變幻莫測的情況做出最適合最正確的決策,這在一定程度上就加快了超市的經(jīng)營效率。我設(shè)計的這個購物系統(tǒng)實現(xiàn)的功能主要有:新用戶注冊登錄,瀏覽新添加和原來的商品,購買想買或者需要買的商品,添加要買的商品至購物車中,查看剛完成的和歷史的訂單等功能;管理員能夠處理更新用戶、添加刪除商品信息、處理訂單信息、等功能。超市購物系統(tǒng)目前在各個商業(yè)領(lǐng)域都發(fā)揮了很大的作用,也得到了越
14、來越多的大、中、小型超市的應(yīng)用。第1章 緒 論1.1設(shè)計的目的和意義通過對市場的調(diào)查和對未來前景的分析,針對目前大多數(shù)中、小型超市的實際需求,開發(fā)了這款手機購物APP。作為一家超市工作人員,每天都要分析研究商品的入庫、銷售、更新等各種信息,設(shè)計本系統(tǒng)的最終目的是要提高超市的銷售額,給這些超市帶來更多的經(jīng)濟效益。在一定程度上也實現(xiàn)了超市實體店與互聯(lián)網(wǎng)、手機的有效結(jié)合,促進了周邊地區(qū)的消費和超市的收入。1.1.1設(shè)計的目的隨著時代的發(fā)展,網(wǎng)絡(luò)已經(jīng)被應(yīng)用到很多行業(yè)和領(lǐng)域。現(xiàn)如今,信息技術(shù)和網(wǎng)絡(luò)的發(fā)展給商家們提供了一個更廣闊的商品推廣渠道。借助于支付方式的不斷完善,開發(fā)超市購物APP應(yīng)用,不僅給商家?guī)?/p>
15、來成本低廉的宣傳、推廣、銷售等好處,還可以幫顧客節(jié)約時間,減去排隊等候付款的煩惱,感受全新的購物體驗。設(shè)計此手機超市購物應(yīng)用,使超市管理員能夠很方便地查詢商品銷售情況以及對商品種類、價格進行添加、刪除,以促進營業(yè)額的上升,提高工作效率,節(jié)省了成本。該軟件的設(shè)計目標(biāo)是盡量降低人力與物力資源的消耗,提高處理數(shù)據(jù)的速度,面向各超市,實現(xiàn)對商品進行有序快速的交易。1.1.2設(shè)計的意義我這次設(shè)計的是一個基于Android的超市購物系統(tǒng),超市管理者或者消費者用一部普通的Android手機,登錄進入該軟件,就可以對商品進行一些基本操作。該購物軟件成功地讓使用它的人不用非要在電腦端購物,也不用抽大量的時間去超
16、市查詢各類商品。只要擁有Android手機,用戶就可以隨時隨地的購買商品。對超市管理者而言,在網(wǎng)絡(luò)平臺上銷售商品使得庫存的壓力變小了、成本變低了,況且管理者用手機就能看到新老顧客購物過后的反饋信息和建議,這樣方便經(jīng)營者調(diào)整營銷戰(zhàn)略,獲得更大的收益。手機購物打破了傳統(tǒng)商務(wù)的障礙,對很多消費者、各中、小型超市還有經(jīng)濟市場起到了很大的影響,順應(yīng)了社會的發(fā)展,使購物更加便利而又人性化。1.2設(shè)計的方法和技術(shù)1.2.1開發(fā)環(huán)境 系統(tǒng)的軟硬件平臺表1-1硬件運行環(huán)境的配置要求: 環(huán)境 配置 CPU 建議i7 內(nèi)存 建議4G以上 硬盤空間 建議8G以上表1-2軟件運行環(huán)境的配置要求: 環(huán)境 配置 操作系統(tǒng)
17、Microsoft 10 數(shù)據(jù)庫 SQL Server 開發(fā)工具 Android Studio1.2.2 開發(fā)語言面向?qū)ο笫钱?dāng)前相對而言比較流行的一種程序設(shè)計思想,其基本的設(shè)計思路是使用對象、類、方法等基本的軟件設(shè)計概念來進行程序開發(fā)復(fù)用性增強。對象是指現(xiàn)實世界中客觀存在的事物擬物成軟件系統(tǒng)的組成元素,并且在軟件系統(tǒng)開發(fā)過程中運用人類自己的自然思維方式進行軟件開發(fā)過程。面向?qū)ο蠹夹g(shù)強調(diào)在軟件開發(fā)過程中面向客觀世界真實存在的事物,采用人類在認(rèn)識客觀世界的過程中普遍運用的思維方法,直觀、自然地描述客觀世界中的有關(guān)事物8。面向?qū)ο蠹夹g(shù)的基本特征主要有封裝、繼承和多態(tài)5。(1)封裝:封裝是指將具有一致
18、的屬性和行為的對象抽象成單獨的類。一個類就是這樣的一種單獨的抽象模式,它包含了與程序的對象有關(guān)的重要的性質(zhì),而忽略其他無關(guān)的內(nèi)容。任何類的劃分都是我們主觀意義上的,但是類的劃分必須是和我們設(shè)計的程序有關(guān)13。 (2)繼承:繼承性是子類共享父類數(shù)據(jù)結(jié)構(gòu)和方法的一種方便的實現(xiàn)代碼結(jié)構(gòu)完整性的機制,子類可以共享父類的全部公有描述,但是還可以進行必要的修改和擴充13。 (3)多態(tài):多態(tài)性使指相同的操作或函數(shù)其過程可作用于多種類型的對象上并獲得不同的結(jié)果。不同的對象,收到同一消息可以產(chǎn)生不同的結(jié)果,這種現(xiàn)象稱為多態(tài)性。多態(tài)指允許每個對象以適合自身的方式去響應(yīng)共同的消息8。多態(tài)性增強了軟件的靈活性13。第
19、2章 系統(tǒng)分析2.1業(yè)務(wù)流程的概述用戶進入首頁后看到的界面從上到下依次是位置定位、新品圖片、功能條款、秒殺促銷,用戶點擊“分類”即可進入所有的商品列表,在商品列表界面點擊任意商品,用戶就能了解該商品的詳細(xì)信息。若用戶喜歡該商品,可將其加入購物車,隨時結(jié)算,提交訂單,即完成了一次購物。2.2 可行性分析該系統(tǒng)從經(jīng)濟、操作、運行、技術(shù)多個方面進行分析其可行性,按照我本人對Java程序設(shè)計語言和安卓知識的了解,本系統(tǒng)的可行性分析主要從以下四個方面進行介紹。2.2.1 經(jīng)濟可行性分析該系統(tǒng)要用到的Android Studio軟件獲得很便捷,就是直接從網(wǎng)上下載,不需要任何費用,并且該系統(tǒng)又是我自己獨立完
20、成,可以節(jié)省很多花銷,在一定程度上也提高了自己的動手能力。2.2.2 操作可行性分析該軟件操作起來非常簡便,只要會用安卓手機的人都可以輕松上手,軟件的所有購物流程都使用了很好用的交互界面,操作起來也很簡單便利,用戶也不用非要掌握它的工作原理和流程。所以來說,該軟件在操作方面是可行的。2.2.3 技術(shù)可行性分析從事IT行業(yè)的人們一般至少都要懂得計算機和手機的一些基礎(chǔ)知識,也就是說一定要有一定的軟硬件基礎(chǔ)知識,也要會用各種基本的管理軟件。在現(xiàn)在社會人們都有或多或少的電腦知識,跟不用說企業(yè)高層的管理層人員了,只要會一些電腦知識,在投入使用已設(shè)計好的新軟件時,只要培訓(xùn)一些少量的管理人員,軟件就能夠順利
21、的使用和運行了,因為其后臺管理界面友好,整個軟件的功能和使用方法也能夠被大多數(shù)員工了解并掌握,操作管理員即使不會任何數(shù)據(jù)庫知識也能很快使用。2.2.4 運行可行性分析本系統(tǒng)為一個簡單的手機網(wǎng)上購物系統(tǒng),所消耗的資源比較少,電腦配置能夠支持開發(fā)軟件的正常運行,又由于開發(fā)環(huán)境的搭建成功,所以本系統(tǒng)運行上是可行的。2.3系統(tǒng)結(jié)構(gòu)分析本系統(tǒng)是一款在智能手機上網(wǎng)上購物的應(yīng)用, 總共分為五個大功能模塊:首頁顯示模塊、商品分類模塊、添加購物車模塊、查看訂單模塊、個人中心模塊,主要目的是設(shè)計一款方便消費者在手機上超市購物的應(yīng)用。2.3.1首頁模塊首頁模塊顯示的首先豎列的秒殺信息和橫向的廣告,橫向能左右滑動豎向
22、能上下,用戶在首頁上方或下方秒殺商品處點擊商品的圖片就能進入到該商品的詳情頁面,在詳情頁面中用戶可根據(jù)自己的需要將該商品加入購物車或者直接購買,數(shù)量也是可自由增加或減少的,也是附近店鋪,促銷專場,禮券,錢包等功能的入口界面。2.3.2商品分類模塊在商品分類模塊用戶可以選擇查看不同類別的商品,比如食品部和聯(lián)營部等等,每一類別的商品又有不同的分區(qū),例如生鮮類就包括蔬菜和雜糧分區(qū)。每一個分區(qū)又包含了很多商品種類,此時點擊這些商品種類,會顯示這類商品的全部品牌,用戶根據(jù)自己的喜好來選擇不同品牌不同類別的商品。豐富而又不復(fù)雜的分類模塊能讓用戶簡便快速找到自己心儀的商品。2.3.3購物車模塊用戶在查看購物
23、車之前須先登錄自己的賬號和密碼,沒有登錄的話該界面會提示“請登錄”的消息。該模塊能實現(xiàn)的功能有:將要買的商品添加至購物車中、編輯商品數(shù)量直到滿足自己的需求、把加入購物車中的商品顯示出來。2.3.4訂單模塊該模塊的功能有:提交已付款的訂單、選擇適合自己的支付方式、全部費用結(jié)算、查看已完成的和未完成的訂單。在購物車中確定要買的商品進行費用結(jié)算,然后完善收貨信息(對于備注,可表明對商品的需求)就完成了訂單,跳轉(zhuǎn)到支付頁面,顯示若干種付款方式,用戶按照適合自己的付款方式,此項訂單就產(chǎn)生了。2.3.5個人中心模塊個人中心模塊主要包括:管理收貨地址、服務(wù)與用戶反饋、配送管理、幫助說明、給朋友們推薦使用該應(yīng)
24、用。例如:增加新的收貨地址或者刪除已經(jīng)不用的收貨地址,服務(wù)與用戶反饋則給客戶提交自己建議的空間,主要是一些輔助功能。 第3章 總體設(shè)計3.1系統(tǒng)功能結(jié)構(gòu)該系統(tǒng)分為客戶端和服務(wù)端:客戶端主要是用戶的注冊、登錄、瀏覽商品、選購商品、加入購物車、查看訂單;服務(wù)端主要是管理員對用戶、商品、訂單的管理,在整個系統(tǒng)中他們具有不同的功能和權(quán)限。該軟件系統(tǒng)功能結(jié)構(gòu)圖如圖3-1所示:圖3-1系統(tǒng)功能結(jié)構(gòu)圖3.1.1 客戶端客戶端是供用戶購物的,其包含了用戶的注冊與登錄、瀏覽商品、加入購物車、查詢訂單、支付等功能,它負(fù)責(zé)直接和用戶交互的功能。用戶進入軟件如果以前注冊過就會把以前加入購物車的記錄和訂單記錄重新顯示,
25、只有登錄過后才能把商品加入購物車或夠買商品,沒有登錄的話系統(tǒng)會跳到登錄界面提示用戶先登錄,在用戶注冊的時候必須用不同的信息注冊,例如用戶的手機號以前注冊過就會提示用戶此手機號已注冊,當(dāng)用戶購買的時候用戶能根據(jù)支付方式去選擇自己需要的支付方式,只有在輸入正確的用戶名和密碼的情況下才能購買,否則會提示密碼錯誤,當(dāng)購買成功后會調(diào)到購買成功界面,其功能流程圖如圖3-2所示:圖3-2 系統(tǒng)流程圖3.1.2 服務(wù)端服務(wù)端主要用于服務(wù)端的管理員管理用戶、商品和訂單等方面,用戶包括用戶名、密碼、電話等一些個人信息,商品包含商品名、圖片、價格、數(shù)量等信息,訂單包括時間、地址等屬性信息。其E-R圖如下3-3所示:
26、圖3-3 E-R圖3.2軟件的體系結(jié)構(gòu)本軟件是典型的Android 超市購物客戶端, 采用建立在Android系統(tǒng)之上的Application Framework 應(yīng)用程序架構(gòu)。本軟件遵循M V C 架構(gòu)設(shè)計原則, 即數(shù)據(jù)( 模型, Model ) 、視圖(View) 和控制器(Controller), 三層有自己所要完成的任務(wù),但又相互聯(lián)系。模型層中主要封裝了要用到的實體類,因為這些類要重復(fù)利用,本軟件主要數(shù)據(jù)來源于服務(wù)器, 數(shù)據(jù)層中存儲了所有數(shù)據(jù)列表的信息、圖片列表信息, 內(nèi)容以JSON 文件形式保存于緩存空間里,這些JavaBean主要就是封裝從服務(wù)器請求數(shù)據(jù)的信息??刂破鲗臃庋b了一些程
27、序的邏輯。為視圖層展示做準(zhǔn)備,控制器主要負(fù)責(zé)本項目的邏輯部分, 包括數(shù)據(jù)調(diào)用邏輯、數(shù)據(jù)計算與視圖關(guān)系的邏輯處理等等。邏輯層在代碼上主要表現(xiàn)為各個視圖控制器, 設(shè)置了整個應(yīng)用各個視圖之間如何切換, 數(shù)據(jù)關(guān)系如何協(xié)調(diào)等,其中在本次設(shè)計中我使用了很多的方法來簡化代碼,也是銜接視圖層和數(shù)據(jù)層最重要的部分。視圖層中處理數(shù)據(jù)顯示的部分,XML布局可以視為V層,顯示Model層的數(shù)據(jù)結(jié)果Google 提供了Android視圖層中的各個類, 自己可以對各種基本控件進行組裝和排版, 構(gòu)成應(yīng)用需要的特定的視圖控件, 如軟件標(biāo)題設(shè)置紅底白字、在用戶體驗至關(guān)重要的點擊處理過程中, 大部分控件設(shè)置了相應(yīng)的視覺效果, 如
28、各種控件按鈕點擊后變色、背景圖片和部分視覺效果等。3.3界面設(shè)計目前Android界面設(shè)計的方法主要有兩種:第一種是用Java編寫的代碼實現(xiàn)。第二種是基于xml的實現(xiàn)。對于界面設(shè)計而言,客戶端注重用戶的操作體驗和頁面之間的層級關(guān)系。受“屏幕小、觸屏操作容易出現(xiàn)錯誤、網(wǎng)速的限制問題”等的條件制約,移動的UI設(shè)計需要考慮精簡頁面布局、提高圖片的加載效率、減少輸入等問題。具體辦法可以這么做:(1)對原有的信息進行簡要整合分析并重組,避免頁面布局的復(fù)雜性。(2)為了更多的展示信息,本軟件整體用Fragment和ViewPager實現(xiàn)讓用戶既能點擊下面的按鈕切換又能左右滑動來切換不同的功能界面。(3)以
29、精簡為主。考慮到手機屏幕的尺寸問題,因此頁面內(nèi)容要足夠的精簡,這就要求主元素內(nèi)容要夠“大”,同時去掉不必要的元素。第4章 詳細(xì)設(shè)計與實現(xiàn)本章主要闡述了首頁模塊,所有商品各種分類模塊、整理購物車模塊、處理所有訂單模塊、個人中心模塊五大模塊的詳細(xì)內(nèi)容, 并且詳細(xì)介紹了各個模塊主要功能的實現(xiàn)方法。每塊功能都用實際效果截圖來更加清晰的展示了該模塊用到的知識和技術(shù),接著用部分典型功能的實現(xiàn)代碼來進行進一步說明。4.1基本功能類設(shè)計在基類功能模塊中,主要實現(xiàn)了各模塊所用到的一些復(fù)用類以及若干視圖控制器類,主要是視圖控制器方法的封裝,供各個實體控制器調(diào)用,這里說幾個。UtilTool類為了提高性能,利用線程
30、池創(chuàng)建線程了10個線程利用handler和接口回調(diào)供各實體控制器調(diào)用,調(diào)用此類能得到正確的返回的字符串,和錯誤的信息然后供調(diào)用者根據(jù)不同的返回信息進行不同的處理。UserManager類該類是工具類,是保存一些信息到本地,主要用途是封裝用戶的數(shù)據(jù)到本地,例如登錄記錄,錢包登錄記錄,當(dāng)用戶再次登錄的時候不用再次輸入,提高用戶體驗,供各個實體類調(diào)用。3.StringUtils類該類是一些字符串的轉(zhuǎn)換,主要功能是一些驗證的正則表達式,對手機號的驗證,郵箱的驗證double和int的轉(zhuǎn)換,取整和保留位數(shù)的使用。MD5key類和Coder類整兩個類是加密類,MD5key是用來MD5加密,當(dāng)用戶注冊的時候
31、密碼直接用MD5加密,因為MD5加密是不可逆的和唯一的,所以直接把MD5加密后的字符串存到數(shù)據(jù)庫,登錄驗證的時候也用MD5加密的字符串驗證,Coder是RAS加密的工具類,該類用于當(dāng)用戶支付的時候和轉(zhuǎn)賬的時候確保安全性。AddBuyCar 這兩個類會在帶有加入購物車功能的界面用到,用來添加商品到購物車,為了提高代碼的復(fù)用性,我把這這個功能封裝成一個類4.2 首頁功能模塊首頁功能模塊是用戶進入軟件后首次看到的模塊主要用來瀏覽廣告列表、進入附近店鋪,錢包,促銷專場,名優(yōu)特產(chǎn),滴購,禮來了等功能的入口,用戶可根據(jù)需要選擇點擊進入任意功能,這個模塊也是整個購物軟件中最重要的功能模塊。4.2.1首頁功能
32、模塊架構(gòu)首頁包括廣告頁和內(nèi)容頁, 分別由Scrolview ,ListView和ViewPager三個控件實現(xiàn)。ListView控件控制豎向的廣告,ViewPager控件控制橫向的廣告,Scrolview主要的作用是控制整體滑動。Include 封裝了八個入口列表視圖, 而由于主頁場景中分布了多個功能模塊的視圖界面, 此頁面作為主頁界面, 該頁面中同時包含了其他模塊的部分邏輯功能,也是其它模塊的入口。主頁模塊主要涉及了若干視圖類, 封裝了程序的主要應(yīng)用邏輯以及界面布局構(gòu)造。主要的類如下:FirstpageFragment 類該類是的軟件首頁類, 首頁的所有控件都是在此類中實現(xiàn)。該類盛放了首頁的
33、所有控件和邏輯。Typesleftadapter類該類繼承于BaseAdapter,主要是Listview控件的數(shù)據(jù)的填充,主要實現(xiàn)了省份列表各視圖的設(shè)計,提供了主頁列表單元格的共有模型,點擊此控件城市和店鋪會跟隨變化,其他入口的界面也會更具不同的選擇具有不同的變化。 3.Typesadapter類 該類是GridView的適配器,GridView的所有數(shù)據(jù)填充都在此類中。4.2.2 廣告頁面的實現(xiàn)ViewPager 是Android開發(fā)中最常用的基本視圖控件之一, 用于構(gòu)建橫向列表視圖控件。軟件中所有列表控件, 如五個主要視圖的切換、橫向廣告的切換列表均使用了ViewPager控件進行列表的
34、構(gòu)造。通過FirstPageradapter適配器事項橫向列表數(shù)據(jù)的填充。FirstPageradapter繼承于PagerAdapter( 滾動視圖) , 可對各種列表拖動過程操作進行控制和監(jiān)控。ViewPager 通過重寫instantiateItem 和destroyItem 的委托方法來讀取數(shù)據(jù)和實現(xiàn)數(shù)據(jù)的加載銷毀, 涉及的主要方法和相應(yīng)邏輯如下:1.列表中橫向廣告數(shù)量: Override public int getCount() return Integer.MAX_VALUE; 讓適配器默認(rèn)返回最大值返回?zé)o數(shù)多個用于循環(huán)滑動2.返回需要顯示的視圖: Override public
35、 Object instantiateItem(ViewGroup container, int position) position %= listimage.size(); ImageView view = listimage.get(position); ViewParent vp =view.getParent(); if (vp!= null ) ViewGroup parent = (ViewGroup)vp; parent.removeView(view); container.addView(view); return view; 。返回列表中對應(yīng)的對象,包含了圖片、文本等多種
36、視圖控件和一部分排版邏輯代碼。設(shè)計樣式具體如圖4-1所示:圖4-1ViewPager效果圖實現(xiàn)的關(guān)鍵代碼: private void initImageView() listimage = new ArrayList(); for (int i = 0; i list.size() * 100; i+) final int a = (i % list.size(); final ImageView imageView = new ImageView(getActivity(); imageView.setTag(list.get(a).getbGoodsORStoreNo(); imageVi
37、ew.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setOnClickListener(new View.OnClickListener() Override public void onClick(View v) String page = (String) imageView.getTag(); if (page.equals(2) Intent intent = new Intent(getActivity(), GoodsDetailsActivity.class); intent.putExtra(storeno, list
38、.get(a).getcStoreNo(); intent.putExtra(goodsno, list.get(a).getAdcGoodsNo(); intent.putExtra(type, FirstpageFragment); intent.putExtra(cMall_No, list.get(a).getcMall_No(); startActivity(intent); else if (page.equals(1) Intent intent = new Intent(getActivity(), AroundContentActivity.class); intent.pu
39、tExtra(storeno, list.get(a).getcStoreNo(); intent.putExtra(storename, list.get(a).getcStoreName(); intent.putExtra(cMall_No, list.get(a).getcMall_No(); intent.putExtra(type, FirstpageFragment); startActivity(intent); if (page.equals(0) Intent intent = new Intent(getActivity(), WebViewActivity.class)
40、; intent.putExtra(url, list.get(a).getAdSkipUrl(); Log.i(tag,list.get(a).getAdSkipUrl(); intent.putExtra(cMall_No, list.get(a).getcMall_No(); startActivity(intent); ); listimage.add(imageView); FirstPageradapter firstPageradapter = new FirstPageradapter(listimage); viewpagerfirst.setCurrentItem(Inte
41、ger.MAX_VALUE / 2); viewpagerfirst.setAdapter(firstPageradapter); problem(); for (int i = 0; i listimage.size(); i+) Picasso.with(getActivity().load(URLConfig.imageUrl + list.get(i % list.size().getAdImagePath().into(listimage.get(i); 使用ListView實現(xiàn)加載數(shù)據(jù)madapter = new FirstListAdapter(getActivity();id_
42、listview.setAdapter(madapter);利用ListView實現(xiàn)加載豎向的數(shù)據(jù)ListView是應(yīng)用中使用數(shù)量最多的控件也是應(yīng)用中最流行的數(shù)據(jù)加載控件。在現(xiàn)在的開發(fā)模式中, 用到了listView和ViewPagerd的功能這一功能是非常流行的,這樣既能橫向滑動用能豎向滑動,也是用戶最為接受的,同時進行了創(chuàng)新的用戶界面設(shè)計。由于動作邏輯和實現(xiàn)代碼非常相似, 故本節(jié)介紹該功能的操作流程。其實現(xiàn)的效果圖如下圖4-2所示:圖4-2實現(xiàn)的效果圖關(guān)鍵代碼如下:Overridepublic View getView(int position, View convertView, Vie
43、wGroup parent) ViewHold viewHold; if (convertView = null) viewHold=new ViewHold(); convertView = LayoutInflater.from(context).inflate(R.layout.firstlistadapter, null); viewHold.imageView= (ImageView) convertView.findViewById(R.id.imagefirst); convertView.setTag(viewHold); else viewHold= (ViewHold) c
44、onvertView.getTag(); String url=list.get(position).getAdImagePath(); url= URLConfig.imageUrl+url; Picasso.with(context).load(url).into(viewHold.imageView); return convertView;class ViewHold ImageView imageView;4.2.3附近店鋪,促銷專場和名優(yōu)特產(chǎn)的實現(xiàn)這三個模塊基本實現(xiàn)都一樣都是用ListView顯示要加載的數(shù)據(jù),附近店鋪就是用戶最近的商店,促銷專場是用來顯示商家要促銷的商品,名優(yōu)特產(chǎn)
45、是一些有特價的商品在現(xiàn)在的開發(fā)模式中, 用到了listView的Contentview的復(fù)用功能,這樣既能友好的展示,還能防止內(nèi)存溢出,所以本軟件的各個模塊均使用了此功能。其界面基本類似如圖4-3所示。圖4-3實現(xiàn)的效果圖4.2.4禮券的實現(xiàn)禮券的主要功能就是展示商家發(fā)的優(yōu)惠券,用戶領(lǐng)取以后會根據(jù)后臺的處理省去一些錢,其主要功能就是根據(jù)商家的需要去銷售商品,禮券上展示的主要有此禮券可用和當(dāng)消費費用達到多少時能用,主要實現(xiàn)也是用到了用到了listView的來展示,能夠更具服務(wù)器的個數(shù)動態(tài)展示。由于動作邏輯和實現(xiàn)代碼非常相似, 故本節(jié)介紹該功能的操作流程。其實現(xiàn)的效果圖如下圖4-4所示:圖4-4實
46、現(xiàn)的效果圖4.3分類模塊的設(shè)計分類模塊是用戶主要用來瀏覽商品列表、通過進行對商品的過濾查看想要的商品詳情的部分,用戶可根據(jù)選擇點擊進入任意應(yīng)用詳情界面。4.3.1分類模塊架構(gòu)分類模塊主要由主頁和內(nèi)容頁兩個頁面組成, 分別由ListView,TabLayout 和GridView 三個視圖控制器控制。ListView視圖顯示總分類的商品, 點擊ListView對應(yīng)的Item,TabLayout的數(shù)據(jù)和GridView的數(shù)據(jù)會發(fā)生變化,點擊TabLayout后GridView的內(nèi)容也會顯示對應(yīng)中類下的商品,根據(jù)用戶的需要能進入商品目錄,或商品詳情界面。分類模塊主要涉三個主要控件,和三個對應(yīng)的數(shù)據(jù)適
47、配器類。主要的類如下:1.Typesleftadapter類該類是分類的大類適配器類,在該類中主要是調(diào)用各個基類的方法實現(xiàn)界面UI的設(shè)計。 2.Typesadapter類 該類是GridView的適配器,GridView的所有數(shù)據(jù)填充都在此類中。該類是分類內(nèi)容小類頁面,通過調(diào)用基類中的方法統(tǒng)一管理了應(yīng)用正文頁面中UI的布局和其他手勢的視圖邏輯。通過幾點可以調(diào)到商品列表頁面。4.3.2 分類界面的實現(xiàn)其主要實現(xiàn)的代碼為:private void initleft() /初始化左面的適配器 if(typesleftadapter=null) typesleftadapter = new Types
48、leftadapter(getActivity(); typesleftadapter.setData(typeleftlist); leftlistview.setAdapter(typesleftadapter); leftlistview.post(new Runnable() Override public void run() if (leftlistview.getChildAt(0) != null) leftlistview.getChildAt(0).findViewById(R.id.visible).setVisibility(View.VISIBLE); );priva
49、te void inittop() tabLayout.removeAllTabs(); tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);/設(shè)置tab模式能滑動 for (int i = 0; i typetoplist.size(); i+) tabLayout.addTab(tabLayout.newTab().setText(typetoplist.get(i).getGrName2(); private void inittypes() if(adapter=null) adapter = new Typesadapter(getActi
50、vity(); typesgridview.setAdapter(adapter); adapter.setData(typesitemlist); adapter.notifyDataSetChanged(); 在應(yīng)用列表界面的設(shè)計主要還是調(diào)用requestDataleft,requestDataTop和requestDataSmall中的方法,來進行頁面的數(shù)據(jù)的請求,然后進給ListView,TabLayout,和GridView數(shù)據(jù)的填充。分類實現(xiàn)的效果和搜索實現(xiàn)的效果如下圖4-5,4-6所示: 圖4-5分類界面實現(xiàn)效果圖 圖4-6搜索界面實現(xiàn)效果圖4.3.3.商品目錄的實現(xiàn)該類繼承于A
51、ppCompatActivity,主要實現(xiàn)了分類列表各視圖的設(shè)計,提供了分類商品下的各種對應(yīng)商品的列表,實現(xiàn)起來比較簡單,效果如圖4-7。 圖4-7商品種類的實現(xiàn)效果圖4.3.4 商品列表的實現(xiàn)該類是繼承于AppCompatActivity類,是GoodsListActivity中ListView點擊以后進入的界面類,主要顯示此種商品下對應(yīng)的所有商家的商品,通過點擊加入購物車圖標(biāo)調(diào)用AddBuyCar類實現(xiàn)加入購物車功能,效果如圖4-8。圖4-8每種商品的添加購物車實現(xiàn)效果圖4.4購物車模塊的設(shè)計購物車模塊是用戶主要用來瀏覽已添加到購物車的商品列表、進行購買前數(shù)量的選擇和取消添加的部分,用戶可
52、根據(jù)選擇點擊加減按鈕進行數(shù)量的選取和刪除,也是最復(fù)雜的一個模,本節(jié)主要闡述的是購物車模塊內(nèi)部的技術(shù)實現(xiàn)方法。4.4.1購物車模塊架構(gòu)購物車模塊主要由ListView控件實現(xiàn),ListView界面中嵌套RadioButton,Button等控件。主要有商品的數(shù)量改變的點擊事件,和一些價格的運算,購物車模塊主要涉及了三個視圖控制器類,一個是數(shù)據(jù)封裝類Buycar,主要是封裝購物車要顯示的主要信息,另一個就是加入購物車的類AddBuyCar主要作用是邏輯處理和數(shù)據(jù)提交。主要的類如下:BuycarAdapter類該類是繼承BaseAdapter類,是購物車中ListView數(shù)據(jù)填充的類,購物車所有邏輯
53、的實現(xiàn)和各種點擊事件的處理都在這個類中實現(xiàn),這個類也是此軟件最復(fù)雜的ListView的適配器。4.4.2購物車的實現(xiàn)其主要實現(xiàn)方法和商品分類一樣都是Fragment忠放ListView然后用BucarAdapter填充listView數(shù)據(jù),其中加入購物車的方法有兩種,一種是手動加入購物車,另一種是打開軟件登錄的時候會根據(jù)用戶以前的購物車的商品從服務(wù)器請求加進去,重新顯示,其主要代碼如下:1.打開軟件首次加載:public void requestData() String userno = UserManager.getUser(getActivity(); String data = nam
54、e=cOSS_No: + SendMessage.cOSS_No + ,cMall_No:,userNo: + userno + ; Log.i(tag,data); UtilTool.get(URLConfig.requestBuycar, new UtilTool.Callback() Override public void response(String url, String str) try Log.i(tag,str); JSONObject obj = new JSONObject(str); String resultStatus=obj.getString(resultSt
55、atus); if(resultStatus.equals(1) JSONArray array = obj.getJSONArray(dDate); Gson gson = new Gson(); list = gson.fromJson(array.toString(), new TypeTokenList() .getType(); adapter.setData(list); Log.i(tag,購物車+list); else adapter.setData(new ArrayList(); adapter.notifyDataSetChanged(); catch (Exceptio
56、n e) e.printStackTrace(); , data);加入購物車的代碼: public static void judgeaddcar(Buycar buycar, final Add addbuycar) /向網(wǎng)絡(luò)請求加入購物車 ArrayList listbuycar = new ArrayList(); listbuycar.add(buycar); Gson gson = new Gson(); String s = gson.toJson(listbuycar); /應(yīng)為服務(wù)器的格式是集合格式所以就放在集合轉(zhuǎn)成這樣 final String data = name= +
57、 s; UtilTool.get(URLConfig.addbuycar, new UtilTool.Callback() Override public void response(String url, String str) if (str.equals(1) addbuycar.add(true); BuycarFragment.getFragment().requestData(); else addbuycar.add(false); Log.i(tag, + data); , data); public interface Add public void add(boolean
58、a); public interface Reduce public void cut(boolean a); 由于在購物車界面中視圖的加載控件都是用代碼寫的,所以代碼量會比較多,但是效果還是完成了預(yù)期。實現(xiàn)的效果圖如下圖4-9所示:圖4-9購物車頁面實現(xiàn)效果圖4.5訂單模塊的設(shè)計訂單模塊分四個功能模塊、提交訂單功能,支付功能,瀏覽訂單功能和查看訂單詳情功能,用戶可從購物車進入提交訂單模塊也可從商品詳情進入訂單模塊。4.5.1模塊架構(gòu)提交訂單模塊主要由主頁和內(nèi)容頁兩個頁面組成, 主要有分別由LinearLayout 和DrawLayout 兩個視圖控制器控制。LinearLayout用來顯示主
59、頁,DrawLayout用來側(cè)拉頁面。瀏覽訂單模塊比較簡單主要負(fù)責(zé)顯示用戶已經(jīng)下單的數(shù)據(jù)。BuycarContentActivity類該類是購物車的最重要的類, 由于購物車主頁UI設(shè)計的內(nèi)容非常多且操作復(fù)雜, 故該類包含了眾多視圖邏輯的代碼, 包括關(guān)于應(yīng)用模塊的單元格的布局方法的調(diào)用等邏輯。在該類中主要是調(diào)用各個基類的方法實現(xiàn)界面UI的設(shè)計。2.OrderGiftAdapter類該類是適配器類,也是優(yōu)惠券DrawLayout中ListView的數(shù)據(jù)填充類,主要判斷是不是有優(yōu)惠券和優(yōu)惠的額度。 3.BuycarContentAdapter類該類是集成BaseAdapter類,是右面DrawLay
60、out中Listview的適配器類,主要是當(dāng)購買商品過多時,用可滑動的ListView以列表的形式展示要購買的商品。4.5.2 提交訂單頁面的實現(xiàn)BuycarContentActivity 的頁面主要有三部分構(gòu)成,分別是用戶的購買地址信息, 需要該買的商品信息,和備注,通過這幾部分的集合視圖,可實現(xiàn)不同的信息的展示,聯(lián)系人信息用圖片隔開更有層次感,通過DrawLayout能讓屏幕空間充分利用。DrawLayout和ListView的組合是一種新的數(shù)據(jù)視圖展示方式,這種方式更加靈活,能盡可能的展示更多的信息。實現(xiàn)一個這個效果的方法就是DrawerLayout里面嵌套ListView基本和寫Lis
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第3章結(jié)締組織課件講課資料
- 更年期用藥未來發(fā)展趨勢報告
- 開展三責(zé)兩對標(biāo)教育活動培訓(xùn)資料
- 2024年浙江舟山群島新區(qū)旅游與健康職業(yè)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 2024年陽春市中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024年江蘇經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 二零二五年度門窗安裝工程質(zhì)保合同范本2篇
- 2024年武漢鐵路橋梁職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 二零二五版不履行離婚協(xié)議贍養(yǎng)費追償起訴狀3篇
- 2024年杭州職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫含答案解析
- 湖北省石首楚源“源網(wǎng)荷儲”一體化項目可研報告
- 基于自然語言處理的電子病歷解讀
- 四川省綿陽市高中2025屆高三二診模擬考試物理試卷含解析
- 合法退婚協(xié)議書模板電子版
- 三化一穩(wěn)定嚴(yán)進嚴(yán)出專案報告
- 2024年山東省濰坊市中考英語試卷(含答案逐題解析)
- GB/T 44133-2024智能電化學(xué)儲能電站技術(shù)導(dǎo)則
- 尼日利亞變電站電氣施工組織設(shè)計
- 關(guān)于退款協(xié)議書范文
- 決戰(zhàn)期末全力以“復(fù)”課件-2023-2024學(xué)年高二下學(xué)期期末動員主題班會
- 《柴油加氫培訓(xùn)包》課件-9 柴油加氫設(shè)備-加氫反應(yīng)器常見的損傷
評論
0/150
提交評論