基于Android平台的菜谱实现
基于Android平台的菜谱实现1需求分析随着手机的广泛普及,无线技术的突飞猛进,移动生活、移动办公逐渐由概念转变为现实,对于传统的餐饮业也产生了潜移默化的影响。目前,大多数餐厅仍然以传统的纸质菜单为主。但是,这种点菜方式存在诸多弊端:从消费者角度来讲,菜谱不能及时更新,导致菜谱信息陈旧,点菜时经常出现某菜品已下架等情况。用户需求:从餐厅老板来说,及时更新纸质的菜谱,无疑会增加餐厅的额外支出。为了改善传统纸质菜谱的弊端,将菜谱应用于手机客户端,为消费者带来更为便利的客户体验。而实时的菜品更新,不仅解决了纸质菜谱短时间内就出现脏、乱、差的问题,实现餐厅无纸化操作,而且潜在的提升了饭店的形象。功能需求:用户可以进入菜单界面选择菜品分类,进入相应的分类内,查看该分类中的菜品信息,并对菜品的等级程度进行评价,查询某特定菜品,也可添加新菜品,删除菜品等。2功能实现本APP基于自身的需求,同时对西北大学周围众多餐厅现状的合理分析,结合实际,设计并实现了一个基于移动手机平台的智能菜谱显示,该系统的设计基于Android智能操作系统,简单的SQLite数据库,实现了对菜品的增、删、查、改各个功能。消费者可以添加要点的菜品,在餐后可以对菜品的口味及好感程度进行具体化的评价,这样是对餐厅工作人员的一个回馈,同时也可以为其他消费者就餐提供建议。2.1主界面1、实现了对菜品的具体分类。如图2-1\n图2-1单击所选择的菜品分类,出现菜品的镜像显示,为消费者提供更为直观的视觉效果,有助于消费者做出选择。如图2-2\n图2-22、是进入菜品显示的入口,同时也显示了该软件的使用方法如图2-3:图2-32.2菜谱显示界面1、该类菜品中所有菜品的具体展示,菜品名称、菜品分类、菜品描述、菜品编号、以及菜品的星级评价,单选或多选菜品。如图2-4:图2-4\n2、搜索菜品菜谱显示界面会显示该分类下的所有菜品,当需要直接看到某单个菜品的具体消息时,可以通过搜索框,进行菜名的特定筛选。如图2-5图2-53、对菜品进行添加4、删除菜品当菜品长时间被消费者冷落,或者有不想再推出的菜品时,进行及时的删除。为消费者提供实时的消息。如图2-6:图2-6\n2.3菜品添加界面当有新的菜品推出时,进行及时的添加,为消费者提供更多选择。软件对菜品的分类给与明确的选择,给用户提供便利。如图2-7:图2-73编码3.1镜像显示publicclassMyMirrorGalleryActivityextendsActivity{publicMyMirrorGallerygallery;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.my_gallery);//ActionBarActionBaractionBar=getActionBar();actionBar.setDisplayHomeAsUpEnabled(true);actionBar.setDisplayShowHomeEnabled(true);\nactionBar.hide();actionBar.show();//---showitagain---gallery=(MyMirrorGallery)findViewById(R.id.Mygallery);gallery.setAdapter(newMyAdapter(this));}@OverridepublicbooleanonCreateOptionsMenu(Menumenu){super.onCreateOptionsMenu(menu);CreateMenu(menu);returntrue;}@OverridepublicbooleanonOptionsItemSelected(MenuItemitem){returnMenuChoice(item);}privatevoidCreateMenu(Menumenu){MenuItemmnu1=menu.add(0,0,0,"详情显示");{mnu1.setIcon(R.drawable.ic_launcher);mnu1.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER|MenuItem.SHOW_AS_ACTION_WITH_TEXT);\n}MenuItemmnu2=menu.add(0,1,1,"软件所有权");{mnu2.setIcon(R.drawable.ic_launcher);mnu2.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER|MenuItem.SHOW_AS_ACTION_WITH_TEXT);}MenuItemmnu3=menu.add(0,2,2,"使用说明");{mnu3.setIcon(R.drawable.ic_launcher);mnu3.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER|MenuItem.SHOW_AS_ACTION_WITH_TEXT);}}privatebooleanMenuChoice(MenuItemitem){switch(item.getItemId()){caseandroid.R.id.home:Toast.makeText(this,"YouclickedontheApplicationicon",Toast.LENGTH_LONG).show();Intenti=newIntent(this,MyMirrorGalleryActivity.class);i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);\nstartActivity(i);returntrue;case0:Intenti2=newIntent(this,MenuActivity.class);i2.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);startActivity(i2);returntrue;case1:Toast.makeText(this,"软件说明:",Toast.LENGTH_LONG).show();newAlertDialog.Builder(MyMirrorGalleryActivity.this).setTitle("软件说明:").setMessage("软件著作:***\n适用范围:所有爱好美食的人\n").setPositiveButton("确定",null).show();returntrue;case2:Toast.makeText(this,"使用说明",Toast.LENGTH_LONG).show();newAlertDialog.Builder(MyMirrorGalleryActivity.this).setTitle("使用说明:").setMessage("使用方法:\n1.选择食物类型;\n2.查看食物\n3.选择心仪的菜品\n").setPositiveButton("确定",null).show();returntrue;}\nreturnfalse;}}3.2添加菜品publicclassAddFoodActivityextendsActivity{protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.addfood);Spinner();Buttonbtn_save=(Button)findViewById(R.id.btn_save);btn_save.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){//TODOAuto-generatedmethodstubEditTexteditText1_foodname=(EditText)findViewById(R.id.editText1_foodname);//EditTextspinner1=(EditText)findViewById(R.id.spinner1);SpinnerspinnerGroup=(Spinner)findViewById(R.id.spinner1);EditTexteditText1_describe=(EditText)findViewById(R.id.editText1_describe);Stringfoodname=editText1_foodname.getText().toString();//Stringeditspinner1=spinner1.getText().toString();Stringclassification=spinnerGroup.getSelectedItem().toString();Stringdescribe=editText1_describe.getText().toString();FoodMenufood=newFoodMenu(foodname,describe,classification);MenuServicedbOpenHelper=newMenuService(AddFoodActivity.this);dbOpenHelper.add(food);//修改Intenti=newIntent(AddFoodActivity.this,MenuActivity.class);\ni.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);startActivity(i);finish();}});}publicbooleanonCreateOptionsMenu(Menumenu){//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.getMenuInflater().inflate(R.menu.add_food,menu);returntrue;}publicbooleanonOptionsItemSelected(MenuItemitem){//Handleactionbaritemclickshere.Theactionbarwill//automaticallyhandleclicksontheHome/Upbutton,solong//asyouspecifyaparentactivityinAndroidManifest.xml.intid=item.getItemId();if(id==R.id.action_settings){returntrue;}returnsuper.onOptionsItemSelected(item);}privatevoidSpinner(){//分组Spinner填充ArrayList
group=newArrayList();group.add("粥品");group.add("派和糕点");\ngroup.add("膨化食品");group.add("酱菜辅料");group.add("敢爱敢做");group.add("饼干");//创建适配器ArrayAdapteradapter=newArrayAdapter(this,R.layout.item_spinner,R.id.item_style,group);//获得控件对象SpinnergroupSpinner=(Spinner)this.findViewById(R.id.spinner1);//设置spinner对象的数据适配器groupSpinner.setAdapter(adapter);groupSpinner.setPrompt("食物分类");}}3.3菜谱显示publicclassMenuActivityextendsActivity{privateArrayListcheckBox=newArrayList();privateboolean[]hasChecked;privateListViewlistView;privateRatingBarratBar;privateandroid.widget.SimpleAdapteradapter;privateList