版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于Android平臺(tái)的菜譜實(shí)現(xiàn)1需求分析隨著手機(jī)的廣泛普及,無(wú)線技術(shù)的突飛猛進(jìn),移動(dòng)生活、移動(dòng)辦公逐漸由概念轉(zhuǎn)變?yōu)楝F(xiàn)實(shí),對(duì)于傳統(tǒng)的餐飲業(yè)也產(chǎn)生了潛移默化的影響。目前,大多數(shù)餐廳仍然以傳統(tǒng)的紙質(zhì)菜單為主。但是,這種點(diǎn)菜方式存在諸多弊端:從消費(fèi)者角度來(lái)講,菜譜不能及時(shí)更新,導(dǎo)致菜譜信息陳舊,點(diǎn)菜時(shí)經(jīng)常出現(xiàn)某菜品已下架等情況。用戶需求:從餐廳老板來(lái)說(shuō),及時(shí)更新紙質(zhì)的菜譜,無(wú)疑會(huì)增加餐廳的額外支出。為了改善傳統(tǒng)紙質(zhì)菜譜的弊端,將菜譜應(yīng)用于手機(jī)客戶端,為消費(fèi)者帶來(lái)更為便利的客戶體驗(yàn)。而實(shí)時(shí)的菜品更新,不僅解決了紙質(zhì)菜譜短時(shí)間內(nèi)就出現(xiàn)臟、亂、差的問(wèn)題,實(shí)現(xiàn)餐廳無(wú)紙化操作,而且潛在的提升了飯店的形象。功能
2、需求:用戶可以進(jìn)入菜單界面選擇菜品分類,進(jìn)入相應(yīng)的分類內(nèi),查看該分類中的菜品信息,并對(duì)菜品的等級(jí)程度進(jìn)行評(píng)價(jià),查詢某特定菜品,也可添加新菜品,刪除菜品等。2功能實(shí)現(xiàn)本APP基于自身的需求,同時(shí)對(duì)西北大學(xué)周圍眾多餐廳現(xiàn)狀的合理分析,結(jié)合實(shí)際,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于移動(dòng)手機(jī)平臺(tái)的智能菜譜顯示,該系統(tǒng)的設(shè)計(jì)基于Android智能操作系統(tǒng),簡(jiǎn)單的SQLite數(shù)據(jù)庫(kù),實(shí)現(xiàn)了對(duì)菜品的增、刪、查、改各個(gè)功能。消費(fèi)者可以添加要點(diǎn)的菜品,在餐后可以對(duì)菜品的口味及好感程度進(jìn)行具體化的評(píng)價(jià),這樣是對(duì)餐廳工作人員的一個(gè)回饋,同時(shí)也可以為其他消費(fèi)者就餐提供建議。2.1主界面1、實(shí)現(xiàn)了對(duì)菜品的具體分類。如圖2-1 圖2-1
3、單擊所選擇的菜品分類,出現(xiàn)菜品的鏡像顯示,為消費(fèi)者提供更為直觀的視覺(jué)效果,有助于消費(fèi)者做出選擇。如圖2-2圖2-22、是進(jìn)入菜品顯示的入口,同時(shí)也顯示了該軟件的使用方法如圖2-3: 圖2-32.2菜譜顯示界面1、該類菜品中所有菜品的具體展示,菜品名稱、菜品分類、菜品描述、菜品編號(hào)、以及菜品的星級(jí)評(píng)價(jià),單選或多選菜品。如圖2-4: 圖2-42、搜索菜品菜譜顯示界面會(huì)顯示該分類下的所有菜品,當(dāng)需要直接看到某單個(gè)菜品的具體消息時(shí),可以通過(guò)搜索框,進(jìn)行菜名的特定篩選。如圖2-5圖2-53、對(duì)菜品進(jìn)行添加4、刪除菜品當(dāng)菜品長(zhǎng)時(shí)間被消費(fèi)者冷落,或者有不想再推出的菜品時(shí),進(jìn)行及時(shí)的刪除。為消費(fèi)者提供實(shí)時(shí)的消
4、息。如圖2-6: 圖2-62.3菜品添加界面當(dāng)有新的菜品推出時(shí),進(jìn)行及時(shí)的添加,為消費(fèi)者提供更多選擇。軟件對(duì)菜品的分類給與明確的選擇,給用戶提供便利。如圖2-7: 圖2-73編碼3.1鏡像顯示public class MyMirrorGalleryActivity extends Activitypublic MyMirrorGallery gallery;Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.my_ga
5、llery); /Action Bar ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayShowHomeEnabled(true); actionBar.hide(); actionBar.show(); /-show it again- gallery=(MyMirrorGallery)findViewById(R.id.Mygallery);gallery.setAdapter(new MyAdapter(this); Override
6、public boolean onCreateOptionsMenu(Menu menu) super.onCreateOptionsMenu(menu); CreateMenu(menu); return true; Override public boolean onOptionsItemSelected(MenuItem item) return MenuChoice(item); private void CreateMenu(Menu menu) MenuItem mnu1 = menu.add(0, 0, 0, 詳情顯示); mnu1.setIcon(R.drawable.ic_l
7、auncher); mnu1.setShowAsAction( MenuItem.SHOW_AS_ACTION_NEVER | MenuItem.SHOW_AS_ACTION_WITH_TEXT); MenuItem mnu2 = menu.add(0, 1, 1, 軟件所有權(quán)); mnu2.setIcon(R.drawable.ic_launcher); mnu2.setShowAsAction( MenuItem.SHOW_AS_ACTION_NEVER | MenuItem.SHOW_AS_ACTION_WITH_TEXT); MenuItem mnu3 = menu.add(0, 2,
8、 2, 使用說(shuō)明); mnu3.setIcon(R.drawable.ic_launcher); mnu3.setShowAsAction( MenuItem.SHOW_AS_ACTION_NEVER | MenuItem.SHOW_AS_ACTION_WITH_TEXT); private boolean MenuChoice(MenuItem item) switch (item.getItemId() case android.R.id.home: Toast.makeText(this, You clicked on the Application icon, Toast.LENGTH
9、_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; case 1: Toast.m
10、akeText(this, 軟件說(shuō)明:, Toast.LENGTH_LONG).show(); new AlertDialog.Builder(MyMirrorGalleryActivity.this) .setTitle(軟件說(shuō)明:) .setMessage(軟件著作:*n適用范圍:所有愛(ài)好美食的人n ) .setPositiveButton(確定, null) .show(); return true; case 2: Toast.makeText(this, 使用說(shuō)明, Toast.LENGTH_LONG).show(); new AlertDialog.Builder(MyMirror
11、GalleryActivity.this) .setTitle(使用說(shuō)明:) .setMessage(使用方法:n 1.選擇食物類型;n 2.查看食物n 3.選擇心儀的菜品n ) .setPositiveButton(確定, null) .show(); return true; return false; 3.2添加菜品public class AddFoodActivity extends Activity protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setCon
12、tentView(R.layout.addfood);Spinner();Button btn_save=(Button) findViewById(R.id.btn_save);btn_save.setOnClickListener(new OnClickListener() public void onClick(View v) / TODO Auto-generated method stubEditText editText1_foodname=(EditText) findViewById(R.id.editText1_foodname);/EditText spinner1=(Ed
13、itText) findViewById(R.id.spinner1);Spinner spinnerGroup = (Spinner) findViewById(R.id.spinner1);EditText editText1_describe=(EditText) findViewById(R.id.editText1_describe);String foodname=editText1_foodname.getText().toString();/String editspinner1=spinner1.getText().toString();String classificati
14、on = spinnerGroup.getSelectedItem().toString();String describe=editText1_describe.getText().toString();FoodMenu food=new FoodMenu(foodname, describe, classification);MenuService dbOpenHelper=new MenuService(AddFoodActivity.this);dbOpenHelper.add(food);/修改Intent i = new Intent(AddFoodActivity.this, M
15、enuActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i);finish(););public boolean onCreateOptionsMenu(Menu menu) / Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.add_food, menu);return true;public boolean onOptionsItemSe
16、lected(MenuItem item) / Handle action bar item clicks here. The action bar will/ automatically handle clicks on the Home/Up button, so long/ as you specify a parent activity in AndroidM id = item.getItemId();if (id = R.id.action_settings) return true;return super.onOptionsItemSelected
17、(item);private void Spinner()/分組Spinner填充 ArrayList group = new ArrayList(); group.add(粥品 ); group.add(派和糕點(diǎn)); group.add(膨化食品); group.add(醬菜輔料); group.add(敢愛(ài)敢做); group.add(餅干); /創(chuàng)建適配器 ArrayAdapter adapter = new ArrayAdapter(this,R.layout.item_spinner,R.id.item_style,group); /獲得控件對(duì)象 Spinner groupSpinn
18、er = (Spinner) this.findViewById(R.id.spinner1); /設(shè)置spinner對(duì)象的數(shù)據(jù)適配器 groupSpinner.setAdapter(adapter); groupSpinner.setPrompt(食物分類);3.3菜譜顯示public class MenuActivity extends Activity private ArrayList checkBox = new ArrayList(); private boolean hasChecked; private ListView listView; private RatingBar
19、ratBar; private android.widget.SimpleAdapter adapter; private ListMap listItems; private Integer imgid = R.drawable.p1, R.drawable.p2, R.drawable.p3, R.drawable.p4, R.drawable.p5, ; private CheckBox check; Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);
20、/去除標(biāo)題 /this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.showfood); /Action Bar ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayShowHomeEnabled(true); actionBar.show(); /-show it again- /獲得搜索按鈕對(duì)象 ImageButton searchbtn = (
21、ImageButton) findViewById(R.id.searchbtn); /searchButton注冊(cè)監(jiān)聽事件 searchbtn.setOnClickListener(new View.OnClickListener() Overridepublic void onClick(View v) / TODO Auto-generated method stubEditText searchtext = (EditText) findViewById(R.id.editTextSearch);String name = searchtext.getText().toString()
22、;MenuService ms = new MenuService(MenuActivity.this);ArrayListHashMap data1 = new ArrayListHashMap();List list = ms.QueryAllData();for(FoodMenu foodmenu:list)foodmenu.getName().toString();if(name.equals(foodmenu.getName().toString()HashMap foodMap = new HashMap();foodMap.put(num,foodmenu.getNum(); f
23、oodMap.put(name,foodmenu.getName(); foodMap.put(classification,foodmenu.getClassification(); foodMap.put(describe,foodmenu.getDescribe(); data1.add(foodMap);int a=new int R.id.tvno,R.id.tvfoodname,R.id.tvclassification,R.id.bdetail; adapter = new android.widget.SimpleAdapter(MenuActivity.this.getApp
24、licationContext(), data1, R.layout.list_item2, new Stringnum,name,classification,describe, a); listView=(ListView) findViewById(R.id.listview); listView.setTextFilterEnabled(true); /將listView控件和adapter綁定 listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListene
25、r() Overridepublic void onItemClick(AdapterView adapterView, View view,int position, long id) / TODO Auto-generated method stubHashMap itemMap = (HashMap)adapterView.getItemAtPosition(position);int num = (Integer) itemMap.get(num);String foodName = (String) itemMap.get(foodName);String foodClassific
26、ation = (String) itemMap.get(foodClassificatoin);String describe = (String) itemMap.get(describe);FoodMenu foodm = new FoodMenu();foodm.setNum(num);foodm.setName(foodName);foodm.setClassification(foodClassification);foodm.setDescribe(describe);Intent intent = new Intent();intent.putExtra(food, foodm
27、);intent.setClass(MenuActivity.this, ShowInfoActivity.class);MenuActivity.this.startActivity(intent););); MenuService ms = new MenuService(this); /查詢所有的菜品 List list = ms.QueryAllData(); /創(chuàng)建一個(gè)ArrayList集合,用于存放擁有food信息的MAP集合 ArrayListHashMap data = new ArrayListHashMap(); for(FoodMenu foodmenu:list) Ha
28、shMap foodMap = new HashMap(); foodMap.put(num,foodmenu.getNum(); foodMap.put(name,foodmenu.getName(); foodMap.put(classification,foodmenu.getClassification(); foodMap.put(describe,foodmenu.getDescribe(); data.add(foodMap); int a=new int R.id.tvno,R.id.tvfoodname,R.id.tvclassification,R.id.bdetail;
29、adapter = new android.widget.SimpleAdapter(this.getApplicationContext(), data, R.layout.list_item2, new Stringnum,name,classification,describe, a); listView=(ListView) findViewById(R.id.listview); listView.setTextFilterEnabled(true); /將listView控件和adapter綁定 listView.setAdapter(adapter); listView.setO
30、nItemClickListener(new AdapterView.OnItemClickListener() Overridepublic void onItemClick(AdapterView adapterView, View view,int position, long id) / TODO Auto-generated method stubHashMap itemMap = (HashMap)adapterView.getItemAtPosition(position);int num = (Integer) itemMap.get(num);String foodName
31、= (String) itemMap.get(foodName);String foodClassification = (String) itemMap.get(foodClassificatoin);String describe = (String) itemMap.get(describe);FoodMenu foodm = new FoodMenu();foodm.setNum(num);foodm.setName(foodName);foodm.setClassification(foodClassification);foodm.setDescribe(describe);Intent intent = new Intent();intent.putExtra(food, foodm);intent.setClass(MenuActivity.this, ShowInfoActivity.class);MenuActivity.this.startActivity(intent);); check
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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擔(dān)保合同的效力怎樣確定
- 注漿補(bǔ)漏施工合同6篇
- 課題申報(bào)參考:跨學(xué)科主題教學(xué)活動(dòng)的設(shè)計(jì)與實(shí)踐研究
- 構(gòu)建可持續(xù)發(fā)展的實(shí)驗(yàn)技術(shù)與設(shè)備共享體系
- 嵌入式系統(tǒng)在環(huán)境監(jiān)測(cè)中的應(yīng)用
- 2024年戶外廣告行業(yè)項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 二零二五年度房屋租賃合同解除條件補(bǔ)充協(xié)議3篇
- 二零二五年度床墊生產(chǎn)技術(shù)改造與升級(jí)合同3篇
- 臨時(shí)人員租賃合同
- 2025年浙科版選擇性必修3化學(xué)下冊(cè)月考試卷
- 中國(guó)末端執(zhí)行器(靈巧手)行業(yè)市場(chǎng)發(fā)展態(tài)勢(shì)及前景戰(zhàn)略研判報(bào)告
- 北京離婚協(xié)議書(2篇)(2篇)
- 2025中國(guó)聯(lián)通北京市分公司春季校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- Samsung三星SMARTCAMERANX2000(20-50mm)中文說(shuō)明書200
- 2024年藥品質(zhì)量信息管理制度(2篇)
- 2024年安徽省高考地理試卷真題(含答案逐題解析)
- 廣東省廣州市2024年中考數(shù)學(xué)真題試卷(含答案)
- 高中學(xué)校開學(xué)典禮方案
- 內(nèi)審檢查表完整版本
- 3級(jí)人工智能訓(xùn)練師(高級(jí))國(guó)家職業(yè)技能鑒定考試題及答案
- 孤殘兒童護(hù)理員技能鑒定考試題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論