




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于Android平臺的菜譜實現(xiàn)1需求分析隨著手機(jī)的廣泛普及,無線技術(shù)的突飛猛進(jìn),移動生活、移動辦公逐漸由概念轉(zhuǎn)變?yōu)楝F(xiàn) 實,對于傳統(tǒng)的餐飲業(yè)也產(chǎn)生了潛移默化的影響。目前,大多數(shù)餐廳仍然以傳統(tǒng)的紙質(zhì)菜單為主。但是,這種點菜方式存在諸多弊端:從 消費(fèi)者角度來講,菜譜不能及時更新,導(dǎo)致菜譜信息舊,點菜時經(jīng)常出現(xiàn)某菜品已下架等情 況。用戶需求:從餐廳老板來說,及時更新紙質(zhì)的菜譜,無疑會增加餐廳的額外支出。為了 改善傳統(tǒng)紙質(zhì)菜譜的弊端,將菜譜應(yīng)用于手機(jī)客戶端,為消費(fèi)者帶來更為便利的客戶體驗。 而實時的菜品更新,不僅解決了紙質(zhì)菜譜短時間就出現(xiàn)臟、亂、差的問題,實現(xiàn)餐廳無紙化 操作,而且潛在的提升了飯店的形
2、象。功能需求:用戶可以進(jìn)入菜單界面選擇菜品分類,進(jìn)入相應(yīng)的分類,查看該分類中的菜 品信息,并對菜品的等級程度進(jìn)行評價,查詢某特定菜品,也可添加新菜品,刪除菜品等。2功能實現(xiàn)本APP基于自身的需求,同時對西北大學(xué)周圍眾多餐廳現(xiàn)狀的合理分析,結(jié)合實際,設(shè) 計并實現(xiàn)了一個基于移動手機(jī)平臺的智能菜譜顯示,該系統(tǒng)的設(shè)計基于Android智能操作系 統(tǒng),簡單的SQLite數(shù)據(jù)庫,實現(xiàn)了對菜品的增、刪、查、改各個功能。消費(fèi)者可以添加要點的菜品,在餐后可以對菜品的口味及好感程度進(jìn)行具體化的評價, 這樣是對餐廳工作人員的一個回饋,同時也可以為其他消費(fèi)者就餐提供建議。2. 1主界面1、實現(xiàn)了對菜品的具體分類。如圖
3、2-142 .HllOk/s10:43 Q iCll © 40 76%圖2T單擊所選擇的菜品分類,出現(xiàn)菜品的鏡像顯示,為消費(fèi)者提供更為直觀的視覺效果,有 助于消費(fèi)者做出選擇。如圖2-2頁腳4G “III Ms 區(qū)10:439 iQl (5 * 尤區(qū)1菜譜顯示圖2-22、是進(jìn)入菜品顯示的入口,同時也顯示了該軟件的使用方法如圖2-3:圖2-32. 2菜譜顯示界面1、該類菜品中所有菜品的具體展示,菜品名稱、菜品分類、菜品描述、菜品編號、以及菜 品的星級評價,單選或多選菜品。如圖2-4:70% CM圖2-42,搜索菜品菜漕顯示界面會顯示該分類下的所有菜品,當(dāng)需要直接看到某單個菜品的具體消息時
4、, 可以通過搜索框,進(jìn)行菜名的特定篩選。如圖2-54C .till o10479 iDc QJ * nr%OBI< 榮酒顯示泡羊商品列表廠BE 圖2-53、對菜品進(jìn)行漆加4、刪除菜品當(dāng)菜品長時間被消費(fèi)者冷落,或者有不想再推出的菜品時,進(jìn)行及時的刪除。為消費(fèi)者 提供實時的消息。如圖2-6:商品列表:圖2-62. 3菜品添加界面當(dāng)有新的菜品推出時,進(jìn)行及時的添加,為消費(fèi)者提供更多選擇。軟件對菜品的分類給與明 確的選擇,給用戶提供便利。如圖2-7:工川加.10:459® w.Add Food Activity名稱:分類:姆比:名林:泡英粥品/分會:派和糕點,粥品派和糕點膨化食品描述:
5、外層蛋糕,內(nèi)層包裹濃濃的媯油,味道微甜,口 感極好的!|普菜輔料保存敢愛敢做 餅干保存圖2-73編碼3.1鏡像顯示public class MyMirrorGa11eryActivity extends Activitypublic MyMirrorGa11ery gallery;Overridepub1ic void onCreate(Bundle savedlnstanceState) super. onCreate(savedlnstanceState);setContentView(R. layout, my gallery);/Action BarActionBar actionBa
6、r = getActionBar();actionBar. setDisplayHomeAsUpEnabled(true);actionBar. setDi sp1ayShowHomeEnab1ed(true); actionBar. hide();actionBar. show(); /show it again ga11ery=(MyMirrorGa11 ery)f indViewById(R. id. Mygallery);gallery.setAdapter(new MyAdapter(this);Overridepublic boolean onCreateOptionsMenu(M
7、enu menu) super.onCreateOptionsMenu(menu);CreateMenu(menu);return true;)Overridepublic boolean onOptionsItemSe1ected(MenuItem item)(return MenuChoice(item);)private void CreateMenu(Menu menu)(Menu I tem mnul = menu. add(Ot 0, 0,"詳情顯示");mnul. seticon(R. drawable. ic launcher); mnul. setShow
8、AsAction(MenuItem. SHOW AS ACTION NEVER |MenuItem. SHOW AS ACTION WITH TEXT);)Menu Item mnu2 = menu. add(Of 1, 1,”軟件所有權(quán)”); mnu2. seticon(R. drawable, ic launcher);mnu2. setShowAsAction (MenuItem. SHOW AS ACTION NEVER |MenuItem. SHOW AS ACTION WITH TEXT);)Menu Item mnu3 = menu. add(0, 2, 2,"使用說明
9、");mnu3. seticon(R. drawable, ic launcher);mnu3. setShowAs/ction (MenuItem. SHOW AS ACTION NEVER |MenuItem. SHOW AS ACTION WITH一TEXT);)private boolean MenuChoice(MenuItem item)(switch (item, getltemld() case android. R. id. home:Toast. makeText(this,"You clicked on the Application icon&quo
10、t;,Toast. LENGTH LONG). show();Intent i = new Intent(this, MyMirrorGalleryActivity. class);i. addFlags(Intent. FLAG ACTIVITY CLEAR TOP);startActivity(i);return true;case 0:Intent i2 = new Intent(this, MenuActivity. class);i2. addFlags(Intent. FLAG ACTIVITY CLEAR_TOP);startActivity(i2);return true;ca
11、se 1:Toast. makeText (this, ”軟件說明:二Toast. LENGTH LONG). show();new AlertDialog. Bui Ider (MyMii'rorGallery/ctivity. this).setTitle("軟件說明:").setMessage("軟件著作:*n適用圍:所有愛好美食的人n").setPositiveButton("確定",null).show();return true;case 2:Toast. makeText (this,"使用說明”,To
12、ast. LENGTH LONG). show();new AlertDialog. Builder(MyMii'rorGalleryActivity. this). setTitle("使用說明:w).setMessage("使用方法:n 1.選擇食物類型;n 2.查看食物n 3.選擇 心儀的菜品n").setPositiveButton("確定".null).show ();return true;)return false;)3. 2添加菜品public class AddFoodActivity extends Activity
13、 protected void onCreate(Bundle savedInstanceState) super. onCreate(savedlnstanceState);setContentView(R. layout. addfood);Spinner ();Button btn save=(Button) findViewByld(R. id. btn save);btn save. setOnClickListener(new OnClickListener() public void onClick(View v) / TODO Auto-generated method stu
14、bEditTexted i tText l_foodnanie= (Ed i tText)findViewById(R. id. editText1 foodname);/EditText spinnerl=(EditText) findViewById(R. id. spinnerl);Spinner spinnerGroup = (Spinner) findViewById(R. id. spinnerl);EditTexteditTextl_describe=(EditText)findViewById(R. id. editText1 describe);String foodname
15、=editText1 foodname. getText(). toStringO;/String editspinner1=spinner1. getText(). toStringO;StringclassificationspinnerGroup. getSelectedltemO. toStringO ;String describe=editText1 describe. getText(). toStringO;FoodMenu food=new FoodMenu(foodname, describe, classification);MenuService dbOpenHelpe
16、r=new MenuService(AddFoodActivity.this);dbOpenHelper. add(food);修改Intent i = new Intent(AddFoodActivity.this, MenuActivity.class);i.addFlags(Intent. FLAG ACTIVITY CLEAR TOP);startActivity(i);f inishO ;);)public boolean onCreateOptionsMenu(Menu menu) / Inflate the menu; this adds items to the action
17、bar if it is present.getMenuInflater(). inflate(R. menu. add food, menu);return true;)public boolean onOptionsItemSelected(Menuitem item) / Handle action bar item clicks here. The action bar wi11/ automatically handle clicks on the Home/Up button, so long/ as you specify a parent activity in /ndroid
18、Manifest. id = item. getltemldO ;if (id = R. id.action settings) return true;)return super. onOptions11emSe1ected(itern);)private void Spinner()分組Spinner填充Ai'rayList<String> group = new ArrayList<String>();group, add("粥品");group, add ("派和糕點");group, add(&q
19、uot;膨化食品");group, add("醬菜輔料");group, add("敢愛敢做");group, add ("餅干");創(chuàng)建適配器newArrayAdapter<St r i ng>adapterAn'ayAdapter<String>(this, R. layout. item spinner, R. id. item style,group);獲得控件對象Spinner groupSpinner = (Spinner) this.findViewById(R. id. spi
20、nnerl);設(shè)置spinner對象的數(shù)據(jù)適配器groupSpinner. setAdapter(adapter);groupSpinner. setPrompt ("食物分類");)3. 3菜譜顯示public class MenuActivity extends Activity(private ArrayList<CheckBox> checkBox = new ArrayList<CheckBox>();private boolean hasChecked;private ListView listView;private RatingBar
21、 ratBar;private android, widget. SimpleAdapter adapter;private List<Map<String, Object» listitems;private Integer imgid = R. drawable, pl,R. drawable. p2t R. drawable. p3,R. drawable. p4, R. drawable. p5,):private CheckBox check;Overrideprotected void onCreate(Bundle savedInstanceState) s
22、uper. onCreate(savedlnstanceState);去除標(biāo)題/this. requestWindowFeature(Window. FEATURE NO TITLE);setContentView(R. layout, showfood);/Action Bar/XctionBar actionBar = getActionBar ();act ionBar. setDisplayllomeAsUpEnabled (true);actionBar. setDisplayShowHomeEnabled(true);actionBar. show(); /show it agai
23、n獲得搜索按鈕對象ImageButton searchbtn = (ImageButton) findViewById(R. id. searchbtn);/searchButton注冊監(jiān)聽事件searchbtn. setOnClickListener(new View. OnClickListener() (Overridepublic void onClick(View v) / TODO Auto-generated method stubEditTextsearchtext=(EditText)findViewById(R. id. editTextSearch);String nam
24、e = searchtext. getText (). toStringO ;MenuService ms = new MenuService(Menu.Activity. this);ArrayList<HashMap<String,Object» datal = newArrayList<HashMap<String,Object»();List<FoodMenu> list = ms. QueryAl IDataO ; for(FoodMenu foodmenu:list) foodmenu. getName(). toString
25、O :if (name, equals (foodmenu. getNameO. toStringO) HashMap<String,Object> foodMap = new HashMap<String,Object>();foodMap. put ("num”, foodmenu, getNumO );foodMap. put ("name,, foodmenu. getNameO);foodMap. put("classification”,foodmenu. getClassification();foodMap. put (&q
26、uot;describe”, foodmenu. getDescribeO);datal. add(foodMap); )inta=newintR. id. tvno, R. id. tvfoodname,R. id. tvclassif ication, R. id. bdetail);adapter=newandroid, widget. Simp 1 eAdaptei*(MenuActivity. this. getAppl icationContext (), datal, R. layout, list item2, new StringE"num","
27、name","classification"."describe", a);1istView=(ListView) findViewByld(R. id. 1istview);1istView. setTextFilterEnabled(true);/將1 istView控件和adapter綁定1istView. setAdapter (adapter);1istView. setOnltemClickListener(newAdapterView. OnltemClickListener() pubIic void onItemC1i ck(
28、AdapterV i ew<?> adapterView, Viewview,int position, long id) / TODO Auto-generated method stubHashMap<String,Object> itemMap = (HashMap<String,Object»adapterView. get ItemAtPosition(position);int num = (Integer) itemMap. get("nunT);String foodName = (String) itemMap. get(nf
29、oodNameH);String foodclassification = (String) i temMap. get (HfoodClassif icatoin1');String describe = (String) itemMap. get("describe");FoodMenu foodm = new FoodMenu();foodm. setNum(num);foodm. setName(foodName);foodm. setClassification(foodclassification);foodm. setDescribe(describe
30、);Intent intent = new Intent();intent. putExtra(Mfood", foodm);intent. setClass(MenuActivity. this,ShowInfoAct ivi ty. class);MenuActivity. this. startActivity(intent);););MenuService ms = new MenuService(this);查詢所有的菜品List<FoodMenu> list = ms. QueryAlIDataO ;創(chuàng)建一個ArrayList集合,用于存放擁有food信息的M
31、AP集合ArrayList<HashMap<String,Object»data=newArrayList<HashMap<String,Object»();for(FoodMenu foodmenu:list) HashMap<String,Object> foodMap = new HashMap<String,Object>();foodMap. put (,numn F foodmenu. getNumO);foodMap. put (w namen, foodmenu. getNameO);foodMap. put(
32、"classificationH,foodmenu. getClassification();foodMap. put ("describe", foodmenu. getDescribeO);data, add(foodMap);)inta=newintR. id. tvno, R. id. tvfoodname,R. id. tvclassif ication, R. id. bdetail);adapter = new android. widget. Simp!eAdapter(this. getApplicationContext(), data,R.
33、layout. Iist_item2fnewStringE num","name","classification","describe", a);1istView=(ListView) findViewByld(R. id. 1istview);1istView. setTextFiIterEnabled(true);將1 istView控件和adapter綁定1istView. setAdapter(adapter);1istView. setOnltemClickListener(new AdapterView. On
34、ltemClickListener() Override頁腳public void onltemClick(AdapterView<?> adapterView, View view, int position, long id) / TODO Auto-generated method stubHashMap<Stringt Object> i temMap = (HashMap<String, Object»adapterView. get ItemAtPosition(position);int num = (Integer) itemMap. g
35、et("num);String foodName = (String) itemMap. get(nfoodName");StringfoodClassification=(String)itemMap. get (nfoodClassif icatoin1');String describe = (String) itemMap. get(udescribeH);FoodMenu foodm = new FoodMenuO ;foodm. setNum(num);foodm. setName(foodName);foodm.setClassification(foodclassification);foodm. setDescribe(describe);Intent intent = new Intent();intent. putExtra
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 協(xié)議書附屬條件范本
- 母狗收養(yǎng)協(xié)議書范本
- 離婚協(xié)議書中的家庭農(nóng)場經(jīng)營權(quán)與土地流轉(zhuǎn)協(xié)議
- 車輛抵押擔(dān)保汽車維修保養(yǎng)擔(dān)保服務(wù)協(xié)議
- 采暖系統(tǒng)安裝與節(jié)能技術(shù)咨詢合同
- 貝娥婚姻關(guān)系終止合同
- 草莓苗種植與農(nóng)業(yè)科技園區(qū)合作合同
- 汽車質(zhì)押擔(dān)保借款合同范本
- 知識產(chǎn)權(quán)產(chǎn)業(yè)園區(qū)廠房轉(zhuǎn)租及創(chuàng)新成果轉(zhuǎn)化合同
- 腎結(jié)石非手術(shù)的護(hù)理查房
- GB/T 33011-2016建筑用絕熱制品抗凍融性能的測定
- 《干部履歷表》(1999版電子版)
- 幼兒教育學(xué)試題及答案
- 巨量引擎O-5A人群資產(chǎn)經(jīng)營方法論
- 醫(yī)院管理分享全病程服務(wù)管理模式的構(gòu)建與實踐湘雅醫(yī)院案例
- 室內(nèi)裝修膩子、雙飛粉施工方案
- 基于同態(tài)加密的高效密文檢索技術(shù)LEAF
- 防暴隊形訓(xùn)練
- 某集團(tuán)考勤管理制實施細(xì)則
- 小升初蘇教版六年級科學(xué)下冊復(fù)習(xí)資料好
- 未注公差的直徑尺寸公差I(lǐng)T
評論
0/150
提交評論