【正文】
首先用戶可以選中購(gòu)物車中的物品,點(diǎn)擊 menu按鈕對(duì)物品進(jìn)行修改數(shù)量和刪除操作。 startActivity(intent)。// 將 HashMap添加到 List中 else//購(gòu)物車為空時(shí)直接添加 Intent intent =new Intent(,)。 (bnum, ().toString())。 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 28 (bprice, price)。 if((tvbid)) //購(gòu)物車中有相同的數(shù)據(jù) else { HashMap item = new HashMap()。icount。 將菜品添加到購(gòu)物車中代碼: (new OnClickListener() { public void onClick(View v) { int count=()。 // 獲得菜名 bname= (bname)。 (pic)。 Bitmap pic=(Bitmap)(pic)。 startActivity(intent)。 (bname, ().toString())。 (pic, (Bitmap) ())。 TextView tvprice = (TextView) ()。 TextView tvid = (TextView) ()。如果用戶選好了菜品,并且準(zhǔn)備將菜品加入購(gòu)物車時(shí),用戶首先得輸入一個(gè)菜品份數(shù),并點(diǎn)擊加入購(gòu)物車按鈕,這時(shí)系統(tǒng)將進(jìn)行一系列的邏輯處理,如果購(gòu)物車 中沒(méi)有物品則直接加入,如果購(gòu)物車中已經(jīng)有物品了,則將用戶剛加入購(gòu)物車的菜品數(shù)據(jù)跟購(gòu)物車中原有的數(shù)據(jù)進(jìn)行匹配,如果已經(jīng)有了,那么將提示用戶,該物品購(gòu)物車?yán)镆延校粗畡t加入購(gòu)物車。當(dāng)用戶點(diǎn)擊每一行菜品時(shí),不論這菜品時(shí)在菜品列表中還是在搜索列表中都會(huì)跳轉(zhuǎn)到菜品詳細(xì)信息界面,在跳轉(zhuǎn)的同時(shí), Intent里面會(huì) PutExtra菜品的數(shù)據(jù),在詳細(xì)信息界面中再將 Intent里面的數(shù)據(jù)取出并顯示。 ()。 } ()。 (map)。 (bstyle, (2))。 (bpicture, (4))。 i++) { HashMap map = new HashMap()。 if (count 0) { // 對(duì)菜品數(shù) 據(jù)遍歷查找 for (int i = 0。 int count = ()。 public void getProductByName(String name) { List productListByname = new ArrayList()。 if (result == null) { }} 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 25 搜索菜品 圖 搜索界面 如果菜品數(shù)量過(guò)多,用戶將會(huì)很難找到自己心儀的菜品,在此,本項(xiàng)目為了方便用戶選擇特定的菜品,設(shè)計(jì)了一個(gè)搜索菜品的功能,通過(guò)搜索界面,用戶可以通過(guò)商品名稱、商家名稱、商品價(jià)格三個(gè)搜索條件來(lái)搜索對(duì)自己胃口的菜品,如圖 ,該功能暫時(shí)僅支持單條件搜索,在此列出按商品名稱搜索的 核心代碼,另外兩種搜索代碼跟此差不多。 (bp)。 BaseProducts bp = new BaseProducts()。 } // 獲得所有的數(shù)據(jù)并灌入 convertView中 return convertView。 // 獲得 listitem布局中的控件并添加到 View上 (viewHolder)。 viewHolder = new ViewHolder()。 class ProductAdapter extends BaseAdapter { public View getView(int position, View convertView, ViewGroup parent){ ViewHolder viewHolder = null。 圖 主界面 當(dāng)用戶選擇菜單選項(xiàng)時(shí),在其下面將列出從服務(wù) 器端發(fā)送過(guò)來(lái)菜品簡(jiǎn)要信息數(shù)據(jù),客戶端想要看到這些數(shù)據(jù)必須對(duì)它進(jìn)行一系列的處理,在此,本模塊采用了 ListView來(lái)顯示菜品信息, ListView是以列表的形式來(lái)展示具體內(nèi)容,并且能夠根據(jù)數(shù)據(jù)的長(zhǎng)度自適應(yīng)的顯示,要想 ListView顯示數(shù)據(jù)必須要為其添加適配器( Adapter),適配器分為很多種,有 ArrayAdapter、 SimpleAdapter、 BaseAdapter等等,由于在該 ListView中顯示的湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 24 數(shù)據(jù)比較多,而且還有圖片信息等,所以在此采用 BaseAdapter來(lái)構(gòu)建適配器。 // 向服務(wù)端發(fā)送請(qǐng)求 response = ()。 (member)。 + address + (address)。 + sex + (sex) + 。客戶端實(shí)現(xiàn)注冊(cè)代碼如下: (new OnClickListener() { public void onClick(View v) { // 獲取用戶輸入數(shù)據(jù) if(()||()||()){ //如果用戶輸入用戶名或密碼為空,則給出提示,用戶名和密碼不能為空 }else {//如果不為空 則先放入 HashMap中,再做密碼輸入是否一致的判斷 // 判斷輸入的密碼是否一致 if ((password).equals( (repassword))) { // 拼湊數(shù)據(jù) data = name + (username) + 。 系統(tǒng)注冊(cè) 注冊(cè)界面如圖 ,跟登陸界面一下,它也有一個(gè)屬于它的布局文件來(lái)擺放這些控件,在此模塊中必須要輸入正確這些注冊(cè)信息,才能正常的進(jìn)行注冊(cè)。 ()。 // 將密碼存在 sharedPreferences Editor passworddata = ()。 (name, ().toString().trim())。 // 向服務(wù)端發(fā)送數(shù)據(jù) if (() 0) { response = (0)。 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 21 (, member)。 // 包裝用戶發(fā)送的用戶數(shù)據(jù) Member member = new Member(name, password)。代碼如下: String name = ().toString().trim()。 } 當(dāng)用戶點(diǎn)擊會(huì)員登陸時(shí),會(huì)把用戶輸入的數(shù)據(jù)跟服務(wù)器端數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行匹配,如果相同則登陸成功,否則彈出登陸失敗的信息。 Intent intent1 = new Intent(, )。 圖 登陸窗口 當(dāng)用戶點(diǎn)擊游客登陸時(shí),將不會(huì)跟服務(wù)器的數(shù)據(jù)庫(kù)進(jìn)行匹配,直接進(jìn)入主界面,代碼如下: if (flag) { // 當(dāng)用戶選擇游客登陸時(shí)點(diǎn)擊登陸按鈕直接進(jìn)入主界面 Intent intent = new Intent(, )。 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 18 第 四 章 系統(tǒng)實(shí)現(xiàn) Android 環(huán)境搭建 任何事物要運(yùn)行,都要有它的環(huán)境, Android 也有它的環(huán)境才能夠運(yùn)行,下面介紹Android 的開(kāi)發(fā)環(huán)境配置 . 搭建開(kāi)發(fā)環(huán)境 需要的軟件: 操作系統(tǒng): Windows 7 或 Linux 軟件包: Android SDK(Software Development kit Java Development kit) 、ADT(Android Develoopment Tool) IDE 環(huán)境: Eclipse IDE+ADT 以上 JDK: Java Runtime Environment 虛擬機(jī) 、 (JDK)Java Development kit 安裝步驟如下: 第一步:安裝 Java 虛擬機(jī) sunjava6jdk 版本 第二步:安裝 工具 官網(wǎng) 選擇版本(圖 ):進(jìn)行安裝 圖 eclipse 下載 第三步:安裝 Android SDK :首先要下載 SDK ,可以在這個(gè)網(wǎng)址下載 ,如圖 ,選擇相應(yīng)的系統(tǒng)進(jìn)行安裝 圖 SDK 下載 第四步:安裝 Android ADT 插件 運(yùn)行 Eclipse,選擇 helpinstall new software 選擇 add,將會(huì)彈出一個(gè)框,如圖 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 19 所示 圖 ADT 的安裝 點(diǎn)擊 OK,選擇要安裝的軟件,占 next,然后選擇接受協(xié)議,直到安裝成功,重啟Eclipse 軟件,設(shè)置 Android SDK Home, Windowrefrence 圖 設(shè)置 SDK 路徑 在 SDK location 中輸入 SDK Tools 路徑: D:\android\androidsdk 點(diǎn)擊 OK 這樣 Android 環(huán)境就已經(jīng)搭建成功了。 DAO 返回結(jié)果給 Servlet。 服務(wù)器業(yè)務(wù)邏輯處理會(huì)調(diào)用 DAO,進(jìn)行數(shù)據(jù)處理。 湖南科技大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 16 + g e t A i d ( ) : i n t+ s e t A i d ( )+ g e t A n a m e ( ) : s t r i n g+ s e t A n a m e ( )+ g e t A c o d e ( ) : s t r i n g+ s e t A c o d e ( ) a i d : i n t a n a m e : s t r i n g a c o d e : s t r i n gA m i n+ g e t B i d ( ) : i n t+ s e t B i d ( )+ g e t B n a m e ( ) : s t r i n g+ s e t B n a m e ( )+ g e t B s t y l e ( ) : s t r i n g+ s e t B s t y l e ( )+ g e t B p r i c e ( ) : f l o a t+ s e t B p r i c e ( )+ g e t B p i c t u r e ( ) : s t r i n g+ s e t B p i c t u r e ( ) b i d : i n t b n a m e : s t r i n g b s t y l e : s t r i n g b p r i c e : f l o a t b p i c t u r e : s t r i n gB a s e P r o d u c t s+ g e t O i d ( ) : i n t+ s e t O i d ( )+ g e t D o i d ( ) : i n t+ s e t D o i d ( )+ g e t B i d ( ) : i n t+ s e t B i d ( )+ g e t D o n u m ( ) : i n t+ s e t D o n u m ( ) o i d : i n t d o i d : i n t b i d : i n t d o n u m : i n tD e t a i l O r d e r+ g e t D i d ( ) : i n t+ s e t D i d ( )+ g e t B i d ( ) : i n t+ s e t B i d ( )+ g e t D a p p r a i s e ( ) : f l o a t+ s e t D a p p r a i s e ( )+ g e t D s t a t e ( ) : i n t+ s e t D s t a t e ( )+ g e t D d i s c o u n t ( ) : i n t+ s e t D d i s c o u n t ( )+ g e t D c o m m e n t ( ) : s t r i n g+ s e t D c o m m e n t ( ) d i d : i n t b i d : i n t d a p p r a i s e : f l o a t d s t a t e : i n t d d i s c o u n t : i n t d c o m m e n t : s t r i n gD e t a i l P r o d u c t s+ g e t M i d ( ) : i n t+ s e t M i d ( )+ g e t M n a m e ( ) : s t r i n g+ s e t M n a m e