1、实验目的和要求

(1)掌握活动Activity的基本使用方法
(2)掌握数据的传递、接收和返回的方法
(3)掌握Fragement的使用方法

2、实验内容和原理

(1)实现Activity数据传递和回传
(2)实战演练-川菜菜谱

要创建三个xml文件

activity_main界面

使用FrameLayout把界面分成两个部分

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"tools:context=".MainActivity"><FrameLayoutandroid:id="@+id/menu"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"></FrameLayout><FrameLayoutandroid:id="@+id/foodcontent"android:layout_weight="3"android:layout_width="0dp"android:layout_height="match_parent"></FrameLayout>
</LinearLayout>

activity_main2界面

<?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"><ListViewandroid:id="@+id/menulist"android:layout_width="match_parent"android:layout_height="match_parent"></ListView>
</LinearLayout>

activity_main3界面

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:id="@+id/content"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_centerVertical="true"android:layout_marginLeft="10dp"android:textSize="18sp" />
</LinearLayout>

创建三个java,其中一个为MainActivity文件

ContentFragment文件代码

创建这个类集成Fragment,在该类中获取界面控件并将菜品做法数据显示到控件上

package com.example.chuancai;
import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.app.Fragment;
public class ContebtFragment extends Fragment {private View view;private TextView mContent;@Overridepublic void onAttach(Activity activity) {super.onAttach(activity);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {//将布局文件解析出来view = inflater.inflate(R.layout.activity_main2, container, false);if(view != null){   //如果view不为空initView();}//获取Activity中的设置文字setText(((MainActivity)getActivity()).getSettingText()[0]);return view;}public void initView(){mContent = (TextView) view.findViewById(R.id.content);}public void setText(String text){mContent.setText(text);}}

MenuFragment代码

这个类也一样集成Fragment,在该类中实现显示川菜列表的信息,点击列表Item,在界面右侧会出现对应菜品的做法信息。

package com.example.chuancai;
import android.annotation.SuppressLint;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
@SuppressLint("NewApi")
public class MenuFragment extends Fragment {private View view;private int[] settingicon;private String[] foodNames;private String[] settingText;private ListView mListView;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {//解析布局view = inflater.inflate(R.layout.layout, container, false);//获取Acitivty实例对象MainActivity activity = (MainActivity) getActivity();//获取Activity中的图标数组settingicon = activity.getIcons();//获取Activity中定义的川菜名称foodNames =  activity.getNames();//获取Activity中的设置文字数组settingText = activity.getSettingText();if (view != null) { // 如果view不为空initView();}//为ListView设置条目监听mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position,long id) {//点击左侧的川菜列表item,右侧菜品做法内容相应改变逻辑//通过Activity实例获取另一个Fragment实例ContebtFragment listFragment = (ContebtFragment)((MainActivity)getActivity()).getFragmentManager().findFragmentById(R.id.foodcontent);//设置菜品类表点击位置对应的菜品做法的Fragment文字listFragment.setText(settingText[position]);}});return view;}//初始化控件的方法private void initView() {mListView = (ListView) view.findViewById(R.id.menulist);if (settingicon != null) {mListView.setAdapter(new MyAdapter());}}//适配器class MyAdapter extends BaseAdapter {@Overridepublic int getCount() {return settingicon.length;}@Overridepublic Object getItem(int position) {return settingicon[position];}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {convertView = View.inflate(getActivity(), R.layout.item_list, null);ImageView mNameTV = (ImageView) convertView.findViewById(R.id.food_icon);mNameTV.setBackgroundResource(settingicon[position]);TextView mFoodName = (TextView) convertView.findViewById(R.id.food_name);mFoodName.setText(foodNames[position]);return convertView;}}}

MainActivity代码

将MenuFragment和ContentFragment类加入MainActivity上

package com.example.chuancai;import android.app.FragmentTransaction;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {private FragmentTransaction beginTransaction;//菜品做法数据private String [] settingText = {"" +"1.将鸡蛋清和淀粉调料调匀成糊,涂抹在肉片上。\n" +"2.将花椒、干辣椒慢火炸,待辣椒呈金黄色捞出切成细末。\n" +"3.用锅中油爆炒豆瓣辣酱,然后将白菜叶,调料放入。\n" +"4.随即放入 肉片,再炖几分钟,肉片熟后,将肉片盛起,将辣椒、花椒末撒上。\n" +"5.用植物油烧开,淋在肉片上,即可使麻、辣、浓香四溢。","1、豆腐切丁,香葱、生姜、大蒜、干辣椒切细末备用。\n" +"2、锅内放入油烧热, 先爆香葱末、生姜末、大蒜末、干辣椒末和豆瓣酱,再放入猪肉馅炒熟。\n" + "3、加入适量水,煮开后加入豆腐丁、酱油、白糖煮3分钟。\n" +"4、再用水淀粉勾芡后盛入盘中。\n" +"5、烧热香油,爆香花椒,将花椒油淋在豆腐上即可。","1.准备鸡腿一个。\n"+"2.把鸡腿骨剔出来。\n"+"3.把鸡腿放入锅中,加冷水,姜片,葱段煮10分钟,关火后焖5分钟。\n"+"4.把煮好的鸡腿放入冷水中浸泡10分钟。\n"+"5.切成块放入盘中,放上姜丝。\n"+"6.取一个碗,放入盐,鸡精,白糖,生抽,醋,藤椒油,辣酱油再放少许水搅拌使调料化开。\n"+"7.把搅拌好的料汁浇在鸡肉上。\n"+"8.放上切碎的小米椒。\n"+"9.再放上香菜就可以了。\n"+"10.一盘香喷喷的椒麻鸡就做好了,放入冰箱冷藏口感更好。","1.仔鸡洗净控干水,斩成2cm见方的丁。\n"+"2.大葱切寸段劈四开,姜切片。用葱姜、盐和胡椒粉抓至起粘性,腌制5分钟。\n"+"3.最佳配角登场了,将干红椒剪成1.5cm左右的节。准备好其它调料。\n"+"4.大火将菜籽油烧至八成热投入鸡丁。\n"+"5.用手勺不停翻动使之受热均匀。\n"+"6.炸至鸡丁表面金黄,捞出沥油。\n"+"7.趋油热快速将干红椒节和青花椒冲一下油,出香即关火。冲油是为了逼出红干椒和青花椒的香气。\n"+"8.捞出控油。\n"+"9.原锅留底油,放入鸡丁小火煸炒。\n"+"10.加入生抽继续煸至干。\n"+"11.放入炸过的干红椒、青花椒进一步煸炒出香。\n"+"12.加入白糖翻炒均匀关火。\n"+"13.放入葱段炒匀。\n"+"14.出锅装盘,用大盘才江湖。\n"+"15.现在可以在辣椒堆里挑鸡丁了。"};private int[] settingicons = { R.drawable.szrp,R.drawable.mpdf,R.drawable.jmj,R.drawable.lzj};private String [] foodNames = {"水煮肉片","麻婆豆腐","四川椒麻鸡","重庆辣子鸡"};//菜品名称数据//获取菜品图片数据的方法public int[]getIcons(){return settingicons;}//获取菜品名称的方法public String[]getNames(){return foodNames;}//获取设置文字的方法public String[]getSettingText(){return settingText;}protected  void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ContebtFragment contebtFragment = new ContebtFragment();MenuFragment menuFragment = new MenuFragment();beginTransaction = getFragmentManager().beginTransaction();beginTransaction.replace(R.id.foodcontent,contebtFragment);beginTransaction.replace(R.id.menu,menuFragment);beginTransaction.commit();}
}

结果实验截图


Android实现川菜菜谱相关推荐

  1. Android案例之Fragment的使用——川菜菜谱

    Android案例之Fragment的使用--川菜菜谱 本案例将会演示如何在一个Activity中展示两个Fragment(一个Fragment用于展示川菜列表,一个Fragment用于展示川菜做法) ...

  2. 基于Android的网络菜谱app,基于Android平台的菜谱实现

    <基于Android平台的菜谱实现>由会员分享,可在线阅读,更多相关<基于Android平台的菜谱实现(14页珍藏版)>请在人人文库网上搜索. 1.基于Android平台的菜谱 ...

  3. [附源码]计算机毕业设计Python+uniapp基于Android的减肥菜谱APPn0n19(程序+源码+LW+远程部署)

    [附源码]计算机毕业设计Python+uniapp基于Android的减肥菜谱APPn0n19(程序+源码+LW+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环 ...

  4. android餐厅菜单功能,基于Android平台的菜谱实现

    <基于Android平台的菜谱实现>由会员分享,可在线阅读,更多相关<基于Android平台的菜谱实现(20页珍藏版)>请在人人文库网上搜索. 1.基于安卓平台的菜谱实现1需求 ...

  5. 基于安卓android studio 的 菜谱食谱APP设计

    一 项目概述 菜谱APP或者食谱APP 是基于安卓开发的一个APP,项目包含前台安卓端和后台管理系统,前台安卓端可以进行 查看推荐菜谱,菜谱搜索,收藏菜品 ,菜品排行榜,菜品详情,个人中心,基本信息, ...

  6. Android菜谱应用客户端

    小食代 前言 有人说2018年的冬天是互联网的冬天,无论大小公司都在裁员,软件公司不要再进了,IT行业饱和了.其实我想说的是:互联网冬天来没来,我不知道,我只知道对于废物程序员来说,每一天都是冬天! ...

  7. Android Studio基础_学校课程案例_笔记

    移动应用课程案例_笔记 开发环境搭建 Android Studio Genymotion 模拟器 案例 飞机大战三个控件 密码与用户登录 五个按钮 桌面台球-帧布局 用户登录-表格布局 图片-线性布局 ...

  8. 使用Fragment

    使用Fragment Fragment的介绍 Fragment的生命周期 创建Fragment 在Activity中添加Fragment 实例--川菜菜谱 Fragment的介绍 Fragment(碎 ...

  9. 评论:Java 7并发食谱

    Java 7 Concurrency Cookbook包含60多个示例,向您展示了如何在Java中进行多线程编程. 它显示了从初级到高级的各种线程主题,包括创建,中断和监视线程之类的线程管理,使用Ja ...

最新文章

  1. Java:网络编程之UDP的使用
  2. HP QC IE11不支持( win7 64位 无法安装)解决方法
  3. mySql 注入攻击
  4. python中with的用法
  5. 将 Win32 程序移植到 Linux
  6. 关于华为海思Hi35XX系列开发的思考与总结
  7. 空间triangle和AABB的相交判定方法
  8. leetcode 200. Number of Islands | 200. 岛屿数量(Java)
  9. android时间最大,Android TimePickerDialog设置最大时间
  10. 互联网实习笔记之30天总结
  11. java 项目拆分_java – 多模块项目什么时候应该拆分成单独的存储库树?
  12. spark集群访问mysql_spark连接数据源以及在spark集群上跑
  13. 51-高级路由:BGP community属性:local-as
  14. .net学习笔记之协变和抗变(原创)
  15. 轮询调度算法 Round Robin
  16. yolov4-tiny目标检测模型实战——学生姿势行为检测
  17. Svn分支管理的使用(三)
  18. 解决win10声卡驱动不兼容问题和成功安装战神k650-i5-d2上的Sound Blaster Cinema2在win10系统上
  19. 设置Chrome新标签页为自定义地址页面
  20. java如何对list进行深度复制

热门文章

  1. 【java基础语法】
  2. 评论:863计划能为网络游戏带来什么
  3. 用C#开发的双色球走势图(一)
  4. 2u服务器稳定运行功耗,2U游戏服务器的散热研究
  5. 恶意代码分析_00_入手资料
  6. SSM源码分析之Mybatis02-Mapper与BestPractice
  7. DVWA设置mysql_配置安装DVWA
  8. 批量标注桩号,加载命令:plbzzh,
  9. 【数据库】redis数据持久化
  10. 简约平面水墨风格风景设计图片