扬州旅游app(三)

来源:互联网 发布:豆荚网络加速器破解 编辑:程序博客网 时间:2024/04/28 06:16

转载请注明出处,谢谢。


本文是扬州旅游app的第三篇。

在上一篇中,我们利用JSON解析完成了在应用中嵌入天气预报功能。接下来,我们来完成扬州美食模块的功能。

先上图。

在UI设计方面,主框架是线性布局,标题部分是套在相对布局里的,因为我们要在屏幕左上方写一个后退按钮,利用相对布局比较容易完成。下面的条目显示,我们利用ListView来做。

下面给出代码:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <RelativeLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:background="#99cc33" >        <ImageView            android:layout_width="20dip"            android:layout_height="20dip"            android:layout_alignParentLeft="true"            android:layout_centerVertical="true"            android:clickable="true"            android:onClick="pre"            android:src="@drawable/previous" />        <TextView            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:gravity="center_horizontal"            android:text="扬州美食"            android:textColor="#ffffff"            android:textSize="22sp" />    </RelativeLayout>    <ListView        android:id="@+id/lv_meishi"        android:layout_width="match_parent"        android:layout_height="match_parent" >         </ListView></LinearLayout>


UI设计好了,接下来就去完成逻辑代码。

这里,我要显示扬州美食的top10。所以我自定义了两个数组。数组一names是美食名称,数组二ids是食物图片在R文件中对应的id。

private static String[] names = { "大煮干丝", "扬州炒饭", "狮子头", "干菜包子", "三丁包子","四喜汤团", "黄桥烧饼", "翡翠烧卖", "扬州饼食", "千层油膏" };private static int[] ids = { R.drawable.meishidazhugansi,R.drawable.meishiyangzhouchaofan, R.drawable.meishishizitou,R.drawable.meishigancaibaozi, R.drawable.meishisandingbaozi,R.drawable.meishisixitangtuan, R.drawable.meishihuangqiaoshaobing,R.drawable.meishifeicuishaomai, R.drawable.meishiyangzhoubingshi,R.drawable.meishiqiancengyougao };


然后我们通过自定义适配器去完成整个布局的逻辑。

private class MyAdapter extends BaseAdapter {@Overridepublic int getCount() {// TODO Auto-generated method stubreturn names.length;}@Overridepublic View getView(int arg0, View arg1, ViewGroup arg2) {View view = View.inflate(YangzhoumeishiActivity.this,R.layout.list_item_meishi, null);TextView tv_item = (TextView) view.findViewById(R.id.tv_item);ImageView iv_item = (ImageView) view.findViewById(R.id.iv_item);tv_item.setText(names[arg0]);iv_item.setImageResource(ids[arg0]);return view;}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int arg0) {// TODO Auto-generated method stubreturn 0;}}


每一个条目显示的布局对应的xml文件如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:gravity="center"    android:orientation="horizontal" >    <ImageView        android:id="@+id/iv_item"        android:layout_width="60dip"        android:layout_height="60dip"        android:src="@drawable/app" />    <TextView        android:id="@+id/tv_item"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="扬州美食"        android:textColor="#000000"        android:textSize="25sp" /></LinearLayout>


后退点击事件,我们返回主页面,即



对应的代码如下:

/*** * 后退点击事件 *  * @author Administrator * */public void pre(View v) {Intent i = new Intent(YangzhoumeishiActivity.this, HomeActivity.class);startActivity(i);finish();}


当我们点击每一个条目的时候,进入相对应的界面,所以我们要对每一个条目设置点击事件。

lv_meishi.setOnItemClickListener(new OnItemClickListener() {Intent intent;@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {switch (arg2) {// 大煮干丝case 0:intent = new Intent(YangzhoumeishiActivity.this,DazhugansiActivity.class);startActivity(intent);break;// 扬州炒饭case 1:intent = new Intent(YangzhoumeishiActivity.this,YangzhouchaofanActivity.class);startActivity(intent);break;// 狮子头case 2:intent = new Intent(YangzhoumeishiActivity.this,ShizitouActivity.class);startActivity(intent);break;// 干菜包子case 3:intent = new Intent(YangzhoumeishiActivity.this,GancaibaoziActivity.class);startActivity(intent);break;// 三丁包子case 4:intent = new Intent(YangzhoumeishiActivity.this,SandingbaoziActivity.class);startActivity(intent);break;// 四喜汤团case 5:intent = new Intent(YangzhoumeishiActivity.this,SixitangtuanActivity.class);startActivity(intent);break;// 黄桥烧饼case 6:intent = new Intent(YangzhoumeishiActivity.this,HuangqiaoshaobingActivity.class);startActivity(intent);break;// 翡翠烧卖case 7:intent = new Intent(YangzhoumeishiActivity.this,FeicuishaomaiActivity.class);startActivity(intent);break;// 扬州饼食case 8:intent = new Intent(YangzhoumeishiActivity.this,YangzhoubingshiActivity.class);startActivity(intent);break;// 千层油膏case 9:intent = new Intent(YangzhoumeishiActivity.this,QiancengyougaoActivity.class);startActivity(intent);break;default:break;}}});



因为对应的条目有10个,每一个实现的方式一样,所以,我们只举其中一个作为演示案例。


// 扬州炒饭case 1:intent = new Intent(YangzhoumeishiActivity.this,YangzhouchaofanActivity.class);startActivity(intent);break;

通过意图,我们跳转到扬州炒饭这一条目所对应的主页面中。

先上图:


这里的ui很简单,线性布局,一个ImageView,一个TextView。

代码如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center_horizontal"    android:orientation="vertical" >    <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/meishiyangzhouchaofan" />    <ScrollView        android:layout_width="match_parent"        android:layout_height="match_parent" >        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="扬州炒饭又名扬州蛋炒饭,相传源自隋朝越国公杨素爱吃的碎金饭,即蛋炒饭。隋炀帝巡视江都(今扬州)时,将蛋炒饭传入扬州,后经过历代烹饪高手的逐步创新,揉进淮扬菜肴的“选料严谨,制作精细,加工讲究,注重配色,源汁源味”的特色,终于发展成为具淮扬风味有名的主食之一。 扬州炒饭的名气遍及世界很多国家,据国外来的朋友讲,许多外国人都喜欢吃扬州炒饭,却不知道扬州是怎么一回事,在他们的头脑中扬州并不是地名,而误认为是这种炒饭的做法。扬州炒饭的品种丰富,有“金裹银”、“什锦蛋炒饭”及“青菜炒饭”等。 所谓“金裹银”就是在饭粒的外层裹上一层金黄色的鸡蛋,其作法是:先将米饭放入锅中翻炒,然后将打散的鸡蛋液均匀地包裹住米饭。经过这样炒制的米饭,其饭粒的外层是金黄色的,里面则是白色的。 什锦蛋炒饭,是扬州炒饭中最典型的品种,它有很多配料,常用的有鸡蛋、海参、火腿、青豆、虾仁、猪里脊肉、香菇、笋、葱花等等。制作时先将鸡蛋炒好,再将其他配料炒熟,加清汤和盐调好味,盛起备用,然后开始炒米饭,米饭要炒得粒粒分明而没有湖斑,最后将炒好的鸡蛋和其它配料倒入一半炒匀,炒匀后盛出三分之二放在盘中,再将剩下的配料与锅中的米饭炒匀,盖在盘中的炒饭上。如此做出的炒饭既漂亮,又有很多配料在上面,真是好吃看得见啊! "            android:textColor="#000000"            android:textSize="22sp" />    </ScrollView></LinearLayout>


其余9个美食页面做样一样,不再一一演示。

至此,我们的美食模块也粗略的完成了。

嘿嘿嘿

0 0
原创粉丝点击