版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2015數(shù)字媒體藝術(shù)專業(yè)本科基于Android開發(fā)的購物商城App的設(shè)計(jì)與實(shí)現(xiàn)II目錄中文摘要 IAbstract I1緒論 11.1購物商城設(shè)計(jì)的背景 11.2購物商城設(shè)計(jì)的內(nèi)容 11.3購物商城設(shè)計(jì)的意義 11.4購物商城設(shè)計(jì)研究的方法 11.5本章小結(jié) 12購物商城設(shè)計(jì)的相關(guān)技術(shù)應(yīng)用 22.1ADT-Bundle在購物商城設(shè)計(jì)中的應(yīng)用 22.2Java在購物商城設(shè)計(jì)中的應(yīng)用 22.3XML在購物商城設(shè)計(jì)中的應(yīng)用 23購物商城設(shè)計(jì) 43.1購物流程設(shè)計(jì) 43.2數(shù)據(jù)存儲(chǔ)設(shè)計(jì) 53.3歡迎界面設(shè)計(jì) 63.4商城界面及底部菜單欄設(shè)計(jì) 73.5商城首頁功能模塊設(shè)計(jì) 73.6購物車功能模塊設(shè)計(jì) 93.7個(gè)人中心功能模塊設(shè)計(jì) 104購物商城的實(shí)現(xiàn) 114.1購物商城歡迎界面的實(shí)現(xiàn) 114.2商城界面及底部菜單欄的實(shí)現(xiàn) 124.3商城首頁的實(shí)現(xiàn) 134.4購物車的實(shí)現(xiàn) 164.5個(gè)人中心的實(shí)現(xiàn) 204.6本章小結(jié) 24結(jié)論 25參考文獻(xiàn) 26附錄 27致謝 31PAGEPAGE241緒論1.1購物商城設(shè)計(jì)的背景隨著當(dāng)今社會(huì)經(jīng)濟(jì)的快速發(fā)展和網(wǎng)絡(luò)的迅速普及,手機(jī)基本成為了每個(gè)人都隨身攜帶的電子產(chǎn)品。傳統(tǒng)的購物方式已經(jīng)滿足不了現(xiàn)代人日益追求便利及高效率的購物心理,而通過移動(dòng)手機(jī)上的在線購物系統(tǒng),可以便捷地甚至足不出門,想要的商品就能送到家,免除了在街上或超市中苦苦尋找商品而付出的勞動(dòng)成本。正因?yàn)槭謾C(jī)成為了現(xiàn)代人幾乎都隨身攜帶的電子產(chǎn)品,所以本設(shè)計(jì)的購物商城則圍繞手機(jī)消費(fèi)品來進(jìn)行探討、開發(fā)設(shè)計(jì)和實(shí)現(xiàn)。簡單的展示手機(jī)在線購物商城購物體驗(yàn)。1.2購物商城設(shè)計(jì)的內(nèi)容基于Android(安卓)平臺(tái)的在線購物商城,主要通過安裝APP移動(dòng)客戶端來實(shí)現(xiàn)在線購物,并提供基本的在線購物商城體驗(yàn),其中包括購物商城歡迎界面、購物商城首頁、購物商城購物車及購物商城個(gè)人中心。購物商城首頁:簡單的說,就是展示商品的界面。通過首頁的分類商品信息,引導(dǎo)使用者進(jìn)入第二級(jí)商品詳情界面。購物商城購物車:把合適的商品或者準(zhǔn)備購物的商品進(jìn)行集中管理,方便使用者查看已經(jīng)挑選過的商品。購物商城個(gè)人中心:提供詳細(xì)的個(gè)人資料信息。如我的收藏、分享應(yīng)用等。1.3購物商城設(shè)計(jì)的意義把手機(jī)購物商城和傳統(tǒng)的購物方式及限制在桌子面前的臺(tái)式電腦上購物方式相比較,突出手機(jī)購物更加便捷高效的購物新體驗(yàn),打破空間的限制,節(jié)省不必要的成本,隨時(shí)隨地地購物商品。1.4購物商城設(shè)計(jì)研究的方法論文的研究綜合了以往類似的文獻(xiàn)、書籍、論壇博文等,經(jīng)過縱橫分析及對(duì)比,采納部分資料進(jìn)行歸類并加以個(gè)人總結(jié),輔助使用ADT開發(fā)平臺(tái),Java編程語言、XML標(biāo)記語言,進(jìn)行理論分析和實(shí)踐1.5本章小結(jié)本章簡述了手機(jī)購物商城設(shè)計(jì)的背景、內(nèi)容和研究方法等,為手機(jī)購物商城的設(shè)計(jì)提供可行性的理論分析及技術(shù)支持。規(guī)范了購物商城的設(shè)計(jì)模板,為UI界面設(shè)計(jì)和功能模塊代碼的編寫進(jìn)行了人性化的設(shè)計(jì),通過ADT開發(fā)平臺(tái)來開發(fā)設(shè)計(jì)并最終實(shí)現(xiàn)。2購物商城設(shè)計(jì)的相關(guān)技術(shù)應(yīng)用2.1ADT-Bundle在購物商城設(shè)計(jì)中的應(yīng)用ADT-Bundle的具體名稱為AndroidDevelopmentTools-Bundle,中文翻譯是“安卓開發(fā)工具集成包”,是由GoogleAndroid(谷歌安卓)官方提供的集成式IDE,已經(jīng)包含了Eclipse。使用者不需要另外下載Eclipse,并且ADT-Bundle里面已集成了插件,能夠很好的解決大部分新手通過Eclipse來配置Android(安卓)開發(fā)環(huán)境的復(fù)雜問題。使用ADT-Bundle,新涉足Android(安卓)開發(fā)的學(xué)習(xí)者也無需再像以往那樣在網(wǎng)上參考繁瑣的配置教程,可以輕松一步到位進(jìn)行Android(安卓)應(yīng)用開發(fā)。在開發(fā)過程中主要使用的是Eclipse,通過Eclipse可以有效地編寫Java代碼。Eclipse自帶著十分強(qiáng)大的功能,為開發(fā)者提供不少便利之處,下面我舉例幾個(gè)功能。代碼自動(dòng)預(yù)測功能,按住組合鍵“Ctrl+/”Eclipse可以根據(jù)已經(jīng)輸入的代碼,自動(dòng)檢測接下來所需要輸入的代碼,彈出滾動(dòng)選項(xiàng)框供開發(fā)者選擇。代碼自動(dòng)檢錯(cuò)功能,當(dāng)開發(fā)者錯(cuò)誤輸入不正確時(shí),Eclipse會(huì)將錯(cuò)誤的代碼段以紅色波浪線下劃線標(biāo)注,以便引起開發(fā)者的注意。自動(dòng)排版功能,按住組合鍵“Ctrl+Shift+F”能夠?qū)⒋a自動(dòng)排版,格式化。因?yàn)槊總€(gè)開發(fā)者的習(xí)慣不一,所以編寫的代碼格式不一,這就導(dǎo)致了給其他開發(fā)者觀看代碼時(shí)造成不多不便。自動(dòng)排版功能就可以解決這些問題。Eclipse在購物商城設(shè)計(jì)中,主要是提供平臺(tái)進(jìn)行代碼編寫、代碼調(diào)試、虛擬機(jī)仿真機(jī)測試、打包APK文件等作用。運(yùn)行Eclipse,能夠方便地幫助開發(fā)者進(jìn)行更精準(zhǔn)的表達(dá)設(shè)計(jì)內(nèi)容。2.2Java在購物商城設(shè)計(jì)中的應(yīng)用Java編程語言,是由Sun公司于1995年5月發(fā)布的一門面向?qū)ο蟮木幊陶Z言。自發(fā)布至今,Java為IT行業(yè)帶來一場巨大的變革,其中包括本論文的購物商城設(shè)計(jì),也是基于Java的演變而來的。Java在購物商城設(shè)計(jì)中,主要負(fù)責(zé)實(shí)現(xiàn)購物商城的基本功能模塊,調(diào)用基礎(chǔ)庫、創(chuàng)建類、擴(kuò)展類等等作用。2.3XML在購物商城設(shè)計(jì)中的應(yīng)用XML的中文名為可擴(kuò)展標(biāo)記語言,是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言,能夠?qū)ξ臋n和數(shù)據(jù)進(jìn)行結(jié)構(gòu)化處理,從而更好的使我們理解文檔和數(shù)據(jù)。XML在購物商城設(shè)計(jì)中,主要負(fù)責(zé)購物商城UI界面的開發(fā)和實(shí)現(xiàn)。通過XML,可以快速地對(duì)購物商城的首頁、購物車以及個(gè)人中心進(jìn)行排版。相較于用Java進(jìn)行UI界面開發(fā)和實(shí)現(xiàn),能夠節(jié)省大量時(shí)間和精力。2.4本章小結(jié)掌握并熟練地運(yùn)用ADT-Bundle、Java和XML,能夠使購物商城的設(shè)計(jì)開發(fā)變得更加順利,其他的開發(fā)也如此。正如工欲善其事,必先利其器。3購物商城設(shè)計(jì)每個(gè)優(yōu)秀的軟件都不離開優(yōu)秀的系統(tǒng)設(shè)計(jì),系統(tǒng)設(shè)計(jì)就像大樓框架,支撐著整幢大樓。因此,系統(tǒng)設(shè)計(jì)為整套軟件系統(tǒng)的實(shí)現(xiàn)提供了必要的基礎(chǔ)。3.1購物流程設(shè)計(jì)當(dāng)用戶打開購物商城時(shí),第一時(shí)間彈出的是歡迎界面并在此界面中停留3秒鐘,以便用戶觀察歡迎界面,加深對(duì)購物商城的購物體驗(yàn)。在歡迎界面過后,用戶可以看到3個(gè)界面模塊,分別是首頁、購物車、個(gè)人中心。在首頁上,添加了8個(gè)手機(jī)商品品牌,當(dāng)用戶點(diǎn)擊不同的手機(jī)品牌時(shí),就會(huì)進(jìn)入對(duì)應(yīng)的手機(jī)商品詳情頁面,在商品詳情頁面上[1],用戶可以對(duì)所展示的手機(jī)商品進(jìn)行加入購物車或加入我的收藏選擇,對(duì)于點(diǎn)擊加入購物車的手機(jī)商品,將會(huì)在購物車頁面進(jìn)行展示并可以在購物車中下訂單和支付,而加入我的收藏的手機(jī)商品,就會(huì)在個(gè)人中心頁面中我的收藏選項(xiàng)卡中進(jìn)行展示,通過點(diǎn)擊降價(jià)提醒,系統(tǒng)會(huì)在收藏商品有降價(jià)是提醒用戶。另外,個(gè)人中心還有用戶登錄和應(yīng)用分享兩個(gè)選項(xiàng)卡,選擇用戶登錄將會(huì)打開登陸框,提醒用戶輸入賬號(hào)密碼,當(dāng)賬號(hào)密碼不為空時(shí),就跳轉(zhuǎn)歡迎用戶登錄界面,然后返回個(gè)人中心界面,如果賬號(hào)密碼有一個(gè)為空時(shí),提醒用戶賬號(hào)密碼不能為空并重新輸入,購物商城構(gòu)思過程如圖3-1所示:圖3-1購物商城構(gòu)思過程3.2數(shù)據(jù)存儲(chǔ)設(shè)計(jì)對(duì)于數(shù)據(jù)的存儲(chǔ)方式,采用了Application來處理。Application,是和Activity、Service組件一樣屬于Android框架的系統(tǒng)組件[2]。通常情況下,當(dāng)Android程序啟動(dòng)時(shí)為自動(dòng)創(chuàng)建一個(gè)Application對(duì)象,可以用來存儲(chǔ)一些系統(tǒng)數(shù)據(jù)。如果需要自己創(chuàng)建也十分簡單,只需要讓一個(gè)類來繼承自Application,同時(shí)在Mainifest中給Applicaiton標(biāo)添加name屬性把自己的Applicaiton寫入即可。Applicaiton自從程序運(yùn)行時(shí)就被創(chuàng)建,因此它的生命周期就等同于程序的生命周期,并且它是全局變量,所以采取Applicaiton來代替SQLite數(shù)據(jù)庫來進(jìn)行數(shù)據(jù)傳遞、數(shù)據(jù)共享、數(shù)據(jù)緩存等操作。本設(shè)計(jì)中涉及到三個(gè)類繼承自Applicaiton,如表3-1所示所示:表3-1Application類Application類:MyApplicationCollectApplicationPayApplication從屬功能模塊:購物車我的收藏支付創(chuàng)建好Applicaiton后,為對(duì)應(yīng)的Applicaiton中創(chuàng)建好的List對(duì)象生成對(duì)應(yīng)的set和get方法,為后續(xù)操作調(diào)用提供方法,如下表3-2所示:表3-2set和get方法Set方法get方法MyApplicationpublicvoidsetShopCarList(List<Integer>ShopCartList){ShopCarList=ShopCarList;publicList<Integer>getShopCarList(){returnShopCarList;CollectApplicationpublicvoidsetCollectList(List<Integer>CollectList){CollectList=CollectList;publicList<Integer>getCollectList(){returnCollectList;PayApplicationpublicvoidsetPayList(List<Integer>PayList){PayList=PayList;publicList<Integer>getPayList(){returnPayList;3.3歡迎界面設(shè)計(jì)為了加強(qiáng)用戶的購物體驗(yàn)以及對(duì)應(yīng)用本身的品牌認(rèn)知度,在選擇打開應(yīng)用的時(shí)候先加載一個(gè)歡迎界面,停留三秒的時(shí)間同時(shí)禁用返回鍵[3],之后再跳轉(zhuǎn)到商城主界面上。用到的資源如表3-3所示:表3-3歡迎界面圖片資源歡迎界面圖片splash.png3.4商城界面及底部菜單欄設(shè)計(jì)展示在用戶面前的屏幕空間是有限的,因此要考慮如何在有限的屏幕空間里同時(shí)展示購物商城的首頁、購物車、個(gè)人中心功能模塊。在一個(gè)完整的Activity上劃分出三個(gè)單獨(dú)的區(qū)域,可以采用Fragment來設(shè)計(jì)。Fragment是一種可以嵌入到Activity中的UI片段,它能讓程序更加合理和充分地利用屏幕空間[4]。因?yàn)榭梢詾橘徫锷坛堑氖醉?、購物車、個(gè)人中心分別設(shè)計(jì)一個(gè)Fragment,如表3-4所示:表3-4首頁、購物車、個(gè)人中心Fragment命名首頁購物車個(gè)人中心HomeFragmentBuyFragmentPeopleFragment在屏幕的底部,用FragmentTabHost設(shè)計(jì)一個(gè)菜單欄,為三個(gè)功能模塊設(shè)計(jì)選項(xiàng)入口,快速響應(yīng)用戶的指引。同時(shí)為三個(gè)選項(xiàng)卡在/res資源目錄下設(shè)計(jì)選中、未選中時(shí)的反饋效果[5],如表3-5所示。因此商城布局設(shè)計(jì)采用Fragment+FragmentTabHost來設(shè)計(jì)。表3-5菜單欄圖片資源首頁購物車個(gè)人中心選中時(shí)Home.pngBuy.pngPeople.png未選中時(shí)home_pressed.pngbuy_pressed.pngpeople_pressed.png3.5商城首頁功能模塊設(shè)計(jì)購物商城首頁頁面是用戶在進(jìn)入軟件主界面之后第一時(shí)間看到的模塊,主要用來展示購物商城售賣商品分類頁面。用戶通過點(diǎn)擊不同的分類商品,可以進(jìn)入該類商品詳細(xì)情況頁面。由于本論文購物商城所展示的商品是手機(jī)商品,因此將選擇在首頁分別展示三星、蘋果、小米、華為、魅族、努比亞、一加、錘子等8種目前市面上流行的手機(jī)品牌。當(dāng)用戶點(diǎn)擊手機(jī)分類頁面上不同的ImageView時(shí),系統(tǒng)就會(huì)自動(dòng)跳轉(zhuǎn)到該類手機(jī)品牌的手機(jī)詳細(xì)情況頁面XXXshopActivity,在詳細(xì)情況頁面中,用戶可以瀏覽到該手機(jī)品牌的手機(jī)款式、價(jià)格等信息,通過點(diǎn)擊加入購物車按鈕、收藏按鈕還可以加入商品到購物車、我的收藏[6]。下面是分別是邏輯圖3-2和商城首頁設(shè)計(jì)詳情表3-6所示。xxxShopxxxShopActivity加入購物車收藏ImageView圖3-2邏輯圖表3-6商城首頁設(shè)計(jì)詳情表ImageView功能xxxShopActivity功能UI布局apple進(jìn)入蘋果商品詳情頁AppleShopActivity瀏覽蘋果商店、加入購物車\收藏appleshop.xmlsamsung進(jìn)入三星商品詳情頁SamsungShopActivity瀏覽三星商店、加入購物車\收藏samsungshop.xmlxiaomi進(jìn)入蘋果商品詳情頁XiaoMiShopActivity瀏覽小米商店、加入購物車\收藏xiaomishop.xmlhuawei進(jìn)入華為商品詳情頁HuaWeiShopActivity瀏覽華為商店、加入購物車\收藏huaweishop.xmlmeizu進(jìn)入魅族商品詳情頁MeiZuShopActivity瀏覽魅族商店、加入購物車\收藏meizushop.xmlnubiya進(jìn)入努比亞商品詳情頁NuBiYaShopActivity瀏覽努比亞商店、加入購物車\收藏nubiyashop.xmloneplus進(jìn)入一加商品詳情頁OnePlusShopActivity瀏覽一加商店、加入購物車\收藏oneplusshop.xmlsmartisan進(jìn)入錘子商品詳情頁SmartisanShopActivity瀏覽錘子商店、加入購物車\收藏smartisanshop.xml3.6購物車功能模塊設(shè)計(jì)購物車頁面是用戶用來瀏覽從手機(jī)商品詳細(xì)情況頁面上選擇加入購物車的商品列表。每當(dāng)用戶從每個(gè)手機(jī)商品詳細(xì)情況頁面上選擇添加到購物車的商品,都會(huì)在購物車頁面上以列表的形式羅列出來[7],通過點(diǎn)擊購買按鈕,可以前往支付頁面[8]。CommonAdapterCommonAdapterShopCarListListViewPayButton支付頁面圖3-3邏輯圖從邏輯上看,是ListView加載數(shù)據(jù)的設(shè)計(jì)??梢詾長istView創(chuàng)建一個(gè)CommonAdapter簡單適配器[9],把商品詳情頁上獲取到的數(shù)據(jù)從MyApplication上的ShopCarList中加載進(jìn)適配器中,再從ListView上以列表形式展現(xiàn)出來。在展示好數(shù)據(jù)的ListView上,通過點(diǎn)擊相應(yīng)的Button按鈕跳轉(zhuǎn)到支付頁面上,如圖3-3邏輯圖所示和表3-7所示:表3-7類的功能定義類功能ShopCarList暫存、傳遞數(shù)據(jù)CommonAdapter適配數(shù)據(jù)ListView列表顯示視圖PayButton前往支付按鈕3.7個(gè)人中心功能模塊設(shè)計(jì)個(gè)人中心頁面是增強(qiáng)用戶購物體驗(yàn)的模塊,在這頁面上有用戶登錄、我的收藏和分享應(yīng)用。顧名思義,用戶登錄就是登錄用戶自己的賬號(hào),我的收藏中可以查看收藏的商品,可以選擇當(dāng)商品出現(xiàn)降價(jià)時(shí)通知用戶,而分享應(yīng)用[10]則是分享購物商城軟件給朋友們,個(gè)人中心設(shè)計(jì)詳情表如表3-8所示:表3-8個(gè)人中心設(shè)計(jì)詳情表Activity功能UI布局CollectActivity我的收藏模塊collect.xml、item_collect_listview.xmlLoginActivity用戶登錄模塊login.xml、register.xml3.4本章小結(jié)購物商城的設(shè)計(jì)遵循了最基本的購物需求,從參考文獻(xiàn)、書籍等各方面收集資料,設(shè)計(jì)出有自己思想的購物商城。頁面設(shè)計(jì)上從商品首頁面到購物車頁面再到個(gè)人中心頁面;功能設(shè)計(jì)上從查看商品到加入購物車、加入收藏再到用戶登錄和分享應(yīng)用功能;UI布局上既滿足了現(xiàn)代審美需求,也強(qiáng)化了用戶的購物體驗(yàn)的。4購物商城的實(shí)現(xiàn)4.1購物商城歡迎界面的實(shí)現(xiàn)當(dāng)用戶點(diǎn)擊購物商城App后,首先在SplashActivity中先把歡迎界面圖片加載進(jìn)來,如下代碼所示:setContentView(R.layout.activity_splash);然后為SplashActivity開啟一個(gè)線程,禁用返回鍵并持續(xù)三秒后跳轉(zhuǎn)到商城主界面上,代碼如下:newHandler().postDelayed(newRunnable(){ @Overridepublicvoidrun(){ Intentintent=newIntent(); intent.setClass(SplashActivity.this,MainActivity.class); startActivity(intent); finish(); } },3000);if(keyCode==KeyEvent.KEYCODE_BACK){ returntrue;}加入歡迎界面圖片手機(jī)商城效果如圖4-1所示:圖4-1購物商城歡迎界面4.2商城界面及底部菜單欄的實(shí)現(xiàn)首先在MainActivity類中繼承FragmentActivity類,代碼如下:publicclassMainActivityextendsFragmentActivity然后在其中定義一個(gè)FragmentTabHost對(duì)象和LayoutInflater對(duì)象,代碼如下:PrivateFragmentTabHostmTabHost;privateLayoutInflaterlayoutInflater;然后定義一個(gè)商城界面數(shù)組fragmentArray和底部菜單欄的選項(xiàng)按鈕數(shù)組mImageViewArray和選項(xiàng)按鈕文字標(biāo)識(shí)數(shù)組mTextViewArray,代碼如下:privateClassfragmentArray[]={HomeFragment.class,BuyFragment.class, PeopleFragment.class};privateintmImageViewArray[]={R.drawable.tab_home_btn, R.drawable.tab_buy_btn,R.drawable.tab_people_btn};privateStringmTextViewArray[]={"首頁","購物車","個(gè)人中心"};在加載好底部菜單欄的布局后,定義一個(gè)initView方法,把HomeFragment.class、BuyFragment.class、PeopleFragment.class三個(gè)Fragment加載進(jìn)MainActivity中實(shí)現(xiàn)關(guān)鍵代碼如下:privatevoidinitView(){layoutInflater=LayoutInflater.from(this);mTabHost=(FragmentTabHost)findViewById(android.R.id.tabhost);mTabHost.setup(this,getSupportFragmentManager(),R.id.realtabcontent);intcount=fragmentArray.length;for(inti=0;i<count;i++){TabSpectabSpec=mTabHost.newTabSpec(mTextViewArray[i]) .setIndicator(getTabItemView(i));mTabHost.addTab(tabSpec,fragmentArray[i],null);}}加載底部菜單欄選項(xiàng)按鈕代碼如下:privateViewgetTabItemView(intindex){Viewview=layoutInflater.inflate(R.layout.tab_item_view,null);ImageViewimageView=(ImageView)view.findViewById(R.id.imageView1);imageView.setImageResource(mImageViewArray[index]);TextViewtextView=(TextView)view.findViewById(R.id.textView1);textView.setText(mTextViewArray[index]);returnview;}最后分別在HomeFragment.class、BuyFragment.class、PeopleFragment.class上重寫onCreateView方法,把布局對(duì)應(yīng)的布局文件加載。以下是HomeFragment中的關(guān)鍵代碼:publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer, BundlesavedInstanceState){ Viewview=inflater.inflate(R.layout.fragment_main,null);returnview;}商城界面及底部菜單欄的實(shí)現(xiàn)如圖4-2所示:圖4-2商城界面及底部菜單欄的實(shí)現(xiàn)4.3商城首頁的實(shí)現(xiàn)商城首頁的實(shí)現(xiàn)不算復(fù)雜,布局方式是采用多重嵌套實(shí)現(xiàn),如圖4-3嵌套布局所示:圖4-3商城首頁UI布局頂部是導(dǎo)航欄,是RelativeLayout布局并在其中添加一個(gè)TextView控件。然后在嵌套中再添加4個(gè)LinearLayout,用來放置8個(gè)ImageView控件,每個(gè)ImageView控件代表一個(gè)手機(jī)品牌。如圖4-4手機(jī)品牌布局所示:圖4-4手機(jī)品牌布局然后定義好導(dǎo)航欄中RelativeLayout控件和textView1控件的屬性詳情,如表4-1所示:表4-1導(dǎo)航欄中控件屬性詳情控件標(biāo)簽屬性RelativeLayoutandroid:layout_widthmatch_parentandroid:layout_height46dpandroid:gravitycenterandroid:background#CD0000textView1android:textColor#FFFFFFandroid:text首頁再為8個(gè)ImageView添加單擊事件監(jiān)聽器,當(dāng)用戶觸摸設(shè)置有單擊事件監(jiān)聽器的ImageView時(shí),就會(huì)觸發(fā)跳轉(zhuǎn)事件,實(shí)現(xiàn)跳轉(zhuǎn)到二級(jí)菜單手機(jī)商品詳細(xì)情況頁面上。最后為8個(gè)手機(jī)商品詳細(xì)情況頁面添加加入購物車和加入我的收藏功能,通過單擊按鈕,實(shí)現(xiàn)把商品加入購物車頁面或我的收藏頁面。單擊事件監(jiān)聽器觸發(fā)跳轉(zhuǎn)事件的關(guān)鍵代碼如下:classappleCheckedListenerimplementsOnClickListener{@OverridepublicvoidonClick(Viewv){Intentintent=newIntent();intent.setClass(getActivity(),AppleShopActivity.class);getActivity().startActivity(intent);}}以下為二級(jí)菜單頁中加入購物車按鈕的單擊事件監(jiān)聽器跳轉(zhuǎn)代碼:publicvoidonClick(Viewarg0){ CollectApplication.CollectList.add(1); Toast.makeText(AppleShopActivity.this,"已加入收藏", Toast.LENGTH_SHORT).show(); finish();}以下為二級(jí)菜單頁中收藏按鈕的單擊事件監(jiān)聽器跳轉(zhuǎn)代碼:publicvoidonClick(Viewarg0){ MyApplication.ShopCarList.add(1); Toast.makeText(AppleShopActivity.this,"已加入購物車", Toast.LENGTH_SHORT).show(); finish();}蘋果二級(jí)頁面如圖4-5所示:圖4-5二級(jí)菜單頁4.4購物車的實(shí)現(xiàn)購物車頁面中,UI布局也離不開多重RelativeLayout和LinearLayout的相互嵌套,如圖4-6購物車UI布局所示:圖4-6購物車UI布局其中包括一個(gè)ListView控件、一個(gè)ImageView控件和一個(gè)TextView控件。ListView控件是配合加載商品使用的,然后和首頁一樣,頂部也有相同的導(dǎo)航欄。下面是表4-2購物車UI布局中控件的屬性詳情表:表4-2購物車UI布局中控件的屬性詳情表控件標(biāo)簽屬性lv_buyandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:layout_alignParentLefttrueandroid:visibilityvisibleimageView1android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_alignParentLefttrueandroid:layout_alignParentToptrueandroid:src@drawable/iconshoppingtextView2android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_below@+id/imageView1android:layout_centerHorizontaltrueandroid:layout_marginTop26dpandroid:text你還沒添加商品而ImageView和TextView是在沒有商品時(shí)當(dāng)沒有商品時(shí)顯示一個(gè)購物車圖案和文字“你還沒添加商品”,圖4-7展示空白購物車,關(guān)鍵實(shí)現(xiàn)代碼如下:if(MyApplication.ShopCarList.size()>0){ getActivity().findViewById(R.id.layout_shooping).setVisibility( View.GONE); getActivity().findViewById(R.id.lv_buy).setVisibility(View.VISIBLE); }圖4-7空白購物車當(dāng)有商品添加進(jìn)購物車時(shí),在購物車頁面中將排列出來,圖4-8展示了商品購物車,關(guān)鍵代碼如下:else{ getActivity().findViewById(R.id.layout_shooping).setVisibility( View.VISIBLE); getActivity().findViewById(R.id.lv_buy).setVisibility(View.GONE); }adapter=newCommonAdapter<Integer>(getActivity(),MyApplication.ShopCarList,R.layout.item_shopcar_listview)switch(item){case0:holder.getView(R.id.rl_0).setVisibility(View.VISIBLE);break;圖4-8有商品購物車當(dāng)有商品購物車中的購買按鈕時(shí),就會(huì)跳轉(zhuǎn)至支付界面,并彈出“訂單已生成,請(qǐng)付款”提示框,圖4-9顯示了支付界面,關(guān)鍵代碼如下:publicvoidconvert(CommonViewHolderholder,intposition, Integeritem){holder.getView(R.id.samsungpaybtn).setOnClickListener( newOnClickListener(){ @Override publicvoidonClick(Viewarg0){ Intentintent=newIntent(); intent.setClass(getActivity(),PaySamsung1Activity.class); startActivity(intent); Toast.makeText(getActivity(),"訂單已生成,請(qǐng)付款!", Toast.LENGTH_SHORT).show();圖4-9支付界面4.5個(gè)人中心的實(shí)現(xiàn)個(gè)人中心頁面中,UI布局也和上述首頁、購物車的一樣,也是多重嵌套和具有一樣的導(dǎo)航欄。如圖4-10所示:圖4-10個(gè)人中心UI布局其中放置了一個(gè)RelativeLayout用作用戶登錄布局和一個(gè)LinearLayout用作我的收藏和分享應(yīng)用功能布局。其中的view是用來當(dāng)作分割線,美化布局。下面是表4-3個(gè)人中心UI布局中控件的屬性詳情表:表4-3個(gè)人中心UI布局中控件的屬性詳情表控件標(biāo)簽屬性loginandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_alignParentToptrueandroid:layout_centerHorizontaltrueandroid:paddingBottom15dpandroid:src@drawable/mycentercollectandroid:layout_alignParentLefttrueandroid:layout_alignParentToptrueandroid:paddingBottom10spandroid:paddingLeft20spandroid:paddingTop10spandroid:text我的收藏android:textSize20spshareandroid:layout_alignParentLefttrueandroid:layout_alignParentToptrueandroid:paddingBottom10spandroid:paddingLeft20spandroid:paddingTop10spandroid:text分享android:textSize20sp點(diǎn)擊用戶頭像將會(huì)跳轉(zhuǎn)至ReisterActivity登錄界面,當(dāng)輸入的用戶密碼不為空時(shí),保存用戶名和密碼并跳轉(zhuǎn)到LoginActivity登錄成功界面中然后返回個(gè)人中心,圖4-11是用戶登錄成功界面,關(guān)鍵代碼如下:if(!"".equals(user)&&!"".equals(pwd)){ Intentintent=newIntent(RegisterActivity.this,LoginActivity.class); Bundlebundle=newBundle();/ bundle.putCharSequence("user",user); bundle.putCharSequence("pwd",pwd); intent.putExtras(bundle); startActivity(intent); finish();圖4-11用戶登錄成功界面反之則彈出提示輸入信息有誤,圖4-12用戶登錄失敗界面,關(guān)鍵代碼如下:Toast.makeText(RegisterActivity.this,"用戶名或密碼輸入信息有誤!", Toast.LENGTH_SHORT).show();圖4-12用戶登錄失敗界面點(diǎn)擊分享功能,則彈出選擇框,供用戶選擇分享至手機(jī)上已經(jīng)安裝的軟件上。分享功能的實(shí)現(xiàn)也比較簡單,只許設(shè)置好intent過濾器,然后選擇分享的應(yīng)用,就可以把已經(jīng)保存好的分享信息分享出去,圖4-13展示了分享應(yīng)用,關(guān)鍵代碼如下:Intentintent=newIntent(Intent.ACTION_SEND);intent.setType("text/*");intent.putExtra(Intent.EXTRA_TEXT,info);if(intent.resolveActivity(getActivity().getPackageManager())!=null){startActivity(intent);圖4-13分享應(yīng)用4.6本章小結(jié)在本章中,通過對(duì)購物商城進(jìn)行詳細(xì)的設(shè)計(jì)實(shí)現(xiàn),從商城首頁到購物車再到個(gè)人中心。在大體上已經(jīng)是一個(gè)有模有樣的購物商城,能夠體驗(yàn)到簡單的購物流程體驗(yàn)。
結(jié)論畢業(yè)設(shè)計(jì)是對(duì)于我大學(xué)期間所學(xué)知識(shí)的應(yīng)用,是一次系統(tǒng)的考察我對(duì)于所學(xué)知識(shí)的掌握程度。不得不說,在畢業(yè)設(shè)計(jì)的途中真遇到不少困難,少則困擾我十幾分鐘,重則困擾我數(shù)天時(shí)間,從理論到實(shí)踐的路上可以說是一條已經(jīng)砌好階梯但十分陡峭難行的登山道路?;贏ndroid(安卓)開發(fā)的購物商城的設(shè)計(jì)使用用了數(shù)據(jù)邏輯層加應(yīng)用層架構(gòu),在強(qiáng)大的Java編程語言和XML標(biāo)簽語言的幫與下,結(jié)合ADT-Bundle開發(fā)平臺(tái)的高速便捷開發(fā),實(shí)現(xiàn)了購物商城基本的購物流程體驗(yàn)。盡管當(dāng)下已擁有諸多強(qiáng)大的購物商城,但更重要的是我在這次的課題研究中掌握了更多的知識(shí)。論文的創(chuàng)新點(diǎn)在于通過Fragment+FragmentTabHost的結(jié)合,開發(fā)出具有底部菜單欄的應(yīng)用框架,使得購物商城能夠在一個(gè)Activity下快速地訪問首頁、購物車或者個(gè)人中心。在有限的屏幕空間里實(shí)現(xiàn)了利用最大化。而移動(dòng)購物充分展示出的便捷性,是傳統(tǒng)購物所不能比擬的。經(jīng)過重重的困難,最終我還是基本完成了能進(jìn)行簡單購物體驗(yàn)的購物商城,能滿足用戶簡單購物需求。如果有什么不足,會(huì)在以后慢慢完善,畢竟羅馬不是一日建成的。在畢業(yè)設(shè)計(jì)中,才真正意識(shí)到開發(fā)一個(gè)項(xiàng)目所做的準(zhǔn)備是多么重要,在開發(fā)前就應(yīng)該制定好詳細(xì)的框架結(jié)構(gòu),有了詳細(xì)的框架結(jié)構(gòu),再開始開發(fā)項(xiàng)目就會(huì)顯得井然有序。一開始時(shí)我并未意識(shí)到這個(gè)問題,導(dǎo)致我的購物商城項(xiàng)目框架潰不成軍,最后只能放棄已經(jīng)做了幾天的項(xiàng)目,重新制定詳細(xì)框架結(jié)構(gòu)再繼續(xù)開發(fā)一個(gè)新的項(xiàng)目。項(xiàng)目中的各個(gè)模塊是互相借用互相嵌套的,不存在獨(dú)立的情況,可以說牽一發(fā)而動(dòng)全身。正是因?yàn)檫@樣,各種各樣的困難接踵而至,在我不斷地查閱文檔資料和無數(shù)次的調(diào)試,才慢慢的解決一個(gè)又一個(gè)困難。相信這次經(jīng)歷,會(huì)讓我在以后的工作中提供了重要幫助。參考文獻(xiàn)[1]卞秀運(yùn).基于Android平臺(tái)的網(wǎng)上商城系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2012,(32)[2]趙國棟.基于Android系統(tǒng)的手機(jī)網(wǎng)上商城設(shè)計(jì)與實(shí)現(xiàn)[D].北京交通大學(xué),2012[3]軟件開發(fā)技術(shù)聯(lián)盟.Android開發(fā)實(shí)戰(zhàn)[M].清華大學(xué)出版社,2013[4]BudiKurniawan(克里亞萬).Java和Android開發(fā)學(xué)習(xí)指南[M].人民郵電出版社,2016[5]孫更新.Android從入門到精通[M].電子工業(yè)出版社,2011[6]吳亞峰,杜化美,蘇亞光.Android編程典型實(shí)例與項(xiàng)目開發(fā)[M].電子工業(yè)出版社,2011[7]李剛.瘋狂Android講義第3版[M].電子工業(yè)出版社,2015[8]李寧.Android應(yīng)用開發(fā)實(shí)戰(zhàn)[M].機(jī)械工業(yè)出版社,2012[9]韓超.Android經(jīng)典應(yīng)用程序開發(fā)[M].電子工業(yè)出版社,2012[10]郭霖.第一行代碼[M].人民郵電出版社,2016附錄說明購物商城結(jié)構(gòu)購物商城應(yīng)用總結(jié)構(gòu)購物商城Java包存放各種功能頁面的activity購物商城的圖片資源文件夾存放購物商城應(yīng)用的各種圖片資源文件購物商城layout布局文件夾組成購物商城每個(gè)頁面布局購物商城AndroidMainfest主設(shè)置文件<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="/apk/res/android"package="com.chason.shop"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="13"android:targetSdkVersion="21"/><applicationandroid:name="com.chason.shop.MyApplication"android:allowBackup="true"android:icon="@drawable/icon"android:label="@string/app_name"android:theme="@android:style/Theme.Holo.Light.NoActionBar"><activityandroid:name=".SplashActivity"android:label="@string/app_name"><intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></int
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度服務(wù)外包行業(yè)人才招聘合同樣本2篇
- 二零二五年度高端服飾店鋪股份轉(zhuǎn)讓與品牌升級(jí)合同3篇
- 二零二五年鋼結(jié)構(gòu)施工安全風(fēng)險(xiǎn)評(píng)估與監(jiān)控合同3篇
- 二零二五年度貨車車輛買賣與維修保養(yǎng)連鎖服務(wù)合同3篇
- 二零二五年度文化創(chuàng)意產(chǎn)業(yè)園區(qū)廠房租賃合同6篇
- 2025年度隨車吊租賃與特種車輛運(yùn)輸服務(wù)合同2篇
- 二零二五年度酒店資產(chǎn)收購合作協(xié)議合同范本3篇
- 二零二五年股權(quán)代持知識(shí)產(chǎn)權(quán)保護(hù)協(xié)議3篇
- 專業(yè)配電室設(shè)備裝配項(xiàng)目協(xié)議2024版版A版
- 2025年度高級(jí)技術(shù)人才引進(jìn)與聘用合同3篇
- 工程款支付報(bào)審表
- 《項(xiàng)目施工組織設(shè)計(jì)開題報(bào)告(含提綱)3000字》
- ICU常見藥物課件
- CNAS實(shí)驗(yàn)室評(píng)審不符合項(xiàng)整改報(bào)告
- 農(nóng)民工考勤表(模板)
- 承臺(tái)混凝土施工技術(shù)交底
- 臥床患者更換床單-軸線翻身
- 計(jì)量基礎(chǔ)知識(shí)培訓(xùn)教材201309
- 中考英語 短文填詞、選詞填空練習(xí)
- 阿特拉斯基本擰緊技術(shù)ppt課件
- 新課程理念下的班主任工作藝術(shù)
評(píng)論
0/150
提交評(píng)論