基于Android平台的菜谱实现.docx
《基于Android平台的菜谱实现.docx》由会员分享,可在线阅读,更多相关《基于Android平台的菜谱实现.docx(21页珍藏版)》请在冰豆网上搜索。
基于Android平台的菜谱实现
基于Android平台的菜谱实现
1需求分析
随着手机的广泛普及,无线技术的突飞猛进,移动生活、移动办公逐渐由概念转变为现实,对于传统的餐饮业也产生了潜移默化的影响。
目前,大多数餐厅仍然以传统的纸质菜单为主。
但是,这种点菜方式存在诸多弊端:
从消费者角度来讲,菜谱不能及时更新,导致菜谱信息陈旧,点菜时经常出现某菜品已下架等情况。
用户需求:
从餐厅老板来说,及时更新纸质的菜谱,无疑会增加餐厅的额外支出。
为了改善传统纸质菜谱的弊端,将菜谱应用于手机客户端,为消费者带来更为便利的客户体验。
而实时的菜品更新,不仅解决了纸质菜谱短时间内就出现脏、乱、差的问题,实现餐厅无纸化操作,而且潜在的提升了饭店的形象。
功能需求:
用户可以进入菜单界面选择菜品分类,进入相应的分类内,查看该分类中的菜品信息,并对菜品的等级程度进行评价,查询某特定菜品,也可添加新菜品,删除菜品等。
2功能实现
本APP基于自身的需求,同时对西北大学周围众多餐厅现状的合理分析,结合实际,设计并实现了一个基于移动手机平台的智能菜谱显示,该系统的设计基于Android智能操作系统,简单的SQLite数据库,实现了对菜品的增、删、查、改各个功能。
消费者可以添加要点的菜品,在餐后可以对菜品的口味及好感程度进行具体化的评价,这样是对餐厅工作人员的一个回馈,同时也可以为其他消费者就餐提供建议。
2.1主界面
1、实现了对菜品的具体分类。
如图2-1
图2-1
单击所选择的菜品分类,出现菜品的镜像显示,为消费者提供更为直观的视觉效果,有助于消费者做出选择。
如图2-2
图2-2
2、是进入菜品显示的入口,同时也显示了该软件的使用方法如图2-3:
图2-3
2.2菜谱显示界面
1、该类菜品中所有菜品的具体展示,菜品名称、菜品分类、菜品描述、菜品编号、以及菜品的星级评价,单选或多选菜品。
如图2-4:
图2-4
2、搜索菜品
菜谱显示界面会显示该分类下的所有菜品,当需要直接看到某单个菜品的具体消息时,可以通过搜索框,进行菜名的特定筛选。
如图2-5
图2-5
3、对菜品进行添加
4、删除菜品
当菜品长时间被消费者冷落,或者有不想再推出的菜品时,进行及时的删除。
为消费者提供实时的消息。
如图2-6:
图2-6
2.3菜品添加界面
当有新的菜品推出时,进行及时的添加,为消费者提供更多选择。
软件对菜品的分类给与明确的选择,给用户提供便利。
如图2-7:
图2-7
3编码
3.1镜像显示
publicclassMyMirrorGalleryActivityextendsActivity{
publicMyMirrorGallerygallery;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.my_gallery);
//ActionBar
ActionBaractionBar=getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.hide();
actionBar.show();//---showitagain---
gallery=(MyMirrorGallery)findViewById(R.id.Mygallery);
gallery.setAdapter(newMyAdapter(this));
}
@Override
publicbooleanonCreateOptionsMenu(Menumenu){
super.onCreateOptionsMenu(menu);
CreateMenu(menu);
returntrue;
}
@Override
publicbooleanonOptionsItemSelected(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);
}
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);
startActivity(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;
}
returnfalse;
}
}
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-generatedmethodstub
EditTexteditText1_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);
i.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填充
ArrayListgroup=newArrayList();
group.add("粥品");
group.add("派和糕点");
group.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
privateInteger[]imgid={R.drawable.p1,
R.drawable.p2,R.drawable.p3,
R.drawable.p4,R.drawable.p5,
};
privateCheckBoxcheck;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
//去除标题
//this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.showfood);
//ActionBar
ActionBaractionBar=getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.show();//---showitagain---
//获得搜索按钮对象
ImageButtonsearchbtn=(ImageButton)findViewById(R.id.searchbtn);
//searchButton注册监听事件
searchbtn.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub
EditTextsearchtext=(EditText)findViewById(R.id.editTextSearch);
Stringname=searchtext.getText().toString();
MenuServicems=newMenuService(MenuActivity.this);
ArrayList>data1=newArrayList>();
Listlist=ms.QueryAllData();
for(FoodMenufoodmenu:
list){
foodmenu.getName().toString();
if(name.equals(foodmenu.getName().toString())){
HashMapfoodMap=newHashMap();
foodMap.put("num",foodmenu.getNum());
foodMap.put("name",foodmenu.getName());
foodMap.put("classification",foodmenu.getClassification());
foodMap.put("describe",foodmenu.getDescribe());
data1.add(foodMap);
}
}
inta[]=newint[]{R.id.tvno,R.id.tvfoodname,R.id.tvclassification,R.id.bdetail};
adapter=newandroid.widget.SimpleAdapter(MenuActivity.this.getApplicationContext(),data1,R.layout.list_item2,newString[]{"num","name","classification","describe"},a);
listView=(ListView)findViewById(R.id.listview);
listView.setTextFilterEnabled(true);
//将listView控件和adapter绑定
listView.setAdapter(adapter);
listView.setOnItemClickListener(newAdapterView.OnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView
>adapterView,Viewview,
intposition,longid){
//TODOAuto-generatedmethodstub
HashMapitemMap=(HashMap)adapterView.getItemAtPosition(position);
intnum=(Integer)itemMap.get("num");
StringfoodName=(String)itemMap.get("foodName");
StringfoodClassification=(String)itemMap.get("foodClassificatoin");
Stringdescribe=(String)itemMap.get("describe");
FoodMenufoodm=newFoodMenu();
foodm.setNum(num);
foodm.setName(foodName);
foodm.setClassification(foodClassification);
foodm.setDescribe(describe);
Intentintent=newIntent();
intent.putExtra("food",foodm);
intent.setClass(MenuActivity.this,ShowInfoActivity.class);
MenuActivity.this.startActivity(intent);
}
});
}
});
MenuServicems=newMenuService(this);
//查询所有的菜品
Listlist=ms.QueryAllData();
//创建一个ArrayList集合,用于存放拥有food信息的MAP集合
ArrayList>data=newArrayList>();
for(FoodMenufoodmenu:
list){
HashMapfoodMap=newHashMap();
foodMap.put("num",foodmenu.getNum());
foodMap.put("name",foodmenu.getName());
foodMap.put("classification",foodmenu.getClassification());
foodMap.put("describe",foodmenu.getDescribe());
data.add(foodMap);
}
inta[]=newint[]{R.id.tvno,R.id.tvfoodname,R.id.tvclassification,R.id.bdetail};
adapter=newandroid.widget.SimpleAdapter(this.getApplicationContext(),