




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2相关知识34任务小结与练习1任务实施任务引入与目标页面跳转一、任务引入与目标任务目标在任务3中,我们将新建一个AndroidStudio工程,创建2个页面。使用Intent类,实现两个活动之间的跳转。任务引入一般来说,一个物联网APP有若干个页面,用户使用时需要在页面之间实现跳转。所谓页面跳转,实际上就是一个活动跳转到另一个活动。二、相关知识Intent类Android的Intent,即意图,是一个要执行的操作的抽象描述,解决Android应用的各项组件之间的通信。一个Intent对象是一个被动的数据结构,保存着要执行的操作。Intent包括显式和隐式两类。显式Intent直接用组件的名称定义目标组件,直接实现明确Activity类名的启动,更多地用于应用程序内部的传递消息;隐式Intent通过设置Action、Data、Category,筛选出合适的Activity启动。显式Intent类的常用方法(1)newIntent():用于创建一个意图。(2)Intent对象.setClass(Content对象,Activity对象.class):setClass方法的第一个参数是Context(上下文)对象,setClass函数的第二个参数是一个Class对象。(3)startActivity(Intent对象):启动意图。二、相关知识Intent除了实现活动之间的跳转,还可以实现什么功能?课堂讨论三、任务实施实施设备安装了AndroidStudio开发环境的计算机。实施过程1.创建工程及配置如图2-21所示,新建Android工程“AlertDialog”,在app→build.gradle中添加viewBinding框架:图2-21添加viewBinding框架android.buildFeatures.viewBinding=true点击同步。因为添加了viewBinding框架,所以会为每一个布局文件自动生成绑定类,比如会为activity_main.xml生成ActivityMainBinding类。三、任务实施如图2-22所示,在MainActivity.java文件中,创建了ActivityMainBinding类对象binding1,在onCreate方法中实例化binding1,并通过binding1对象的getRoot方法得到activity_main.xml布局文件中的view。图2-22实例化binding类三、任务实施2.第一个页面设计(1)activity_main.xml布局文件。代码如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><TextView android:layout_width="wrap_content" android:layout_height="60dp" android:text="FirstActivity!"/><Button android:id="@+id/btn1" android:text="clickme,willjumptopage2" android:textSize="20sp" android:layout_width="match_parent" android:layout_height="60dp"></Button></LinearLayout>在activity_main.xml布局文件中,添加了1个按钮控件,id为btn1,文本内容为“clickme,willjumptopage2”。三、任务实施(2)MainActivity.java活动文件。MainActivity.java活动文件中MainActivity类定义代码如下:publicclassMainActivityextendsAppCompatActivity{ActivityMainBindingbinding1;//activity_main布局类对象-声明@OverrideprotectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); binding1=ActivityMainBinding.inflate(getLayoutInflater());//获取binding setContentView(binding1.getRoot());//通过getRoot拿到view binding1.btn1.setOnClickListener(newView.OnClickListener(){ @Override publicvoidonClick(Viewview){ Intentintent1=newIntent(); //由MainActivity转向SecondActivity intent1.setClass(MainActivity.this,SecondActivity.class); startActivity(intent1);//按照意图1,启动Activity } });}}三、任务实施在程序中:①binding1对象通过id获取到btn1按钮后,设置btn1的单击事件监听。②在重写btn1的onClick方法中,创建意图intent。③setClass方法的第一个参数是Context(上下文)对象,Context是一个类,Activity是Context类的子类,也就是说,所有的Activity对象,都可以向上转型为Context对象;setClass方法的第二个参数是Class对象,在当前场景下,传入了需要被启动的Activity类的class对象SecondActivity.class。④通过startActivity方法启动意图,实现跳转。简而言之,btn1实现由MainActivity转向SecondActivity。需要注意的是,此时的SecondActivity活动还没有,程序会报错。接下来设计第二个页面。三、任务实施3.第二个页面设计(1)复制新的布局和活动文件。复制新的布局和活动文件,文件位置和第一个页面是一样的:在src→main→res→layout目录中增加activity_second.xml文件,在src→main→java→entactivity中增加SecondActivity.java文件。(2)activity_second.xml布局文件。代码如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".SecondActivity"><TextView android:layout_width="wrap_content" android:layout_height="60dp" android:text=“SecondActivity!"/><Button android:id="@+id/btn2" android:text="clickme,willjumptopage1" android:textSize="20sp" android:layout_width="match_parent" android:layout_height="60dp"></Button></LinearLayout>在activity_second.xml布局文件中,添加了1个按钮控件,id为btn2,文本内容为“clickme,willjumptopage1”。三、任务实施(3)SecondActivity.java活动文件。SecondActivity.java活动文件中SecondActivity类定义代码如下:publicclassMainActivityextendsAppCompatActivity{ActivityMainBindingbinding2;//activity_main布局类对象-声明@OverrideprotectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); binding2=ActivityMainBinding.inflate(getLayoutInflater());//获取binding setContentView(binding2.getRoot());//通过getRoot拿到view binding2.btn2.setOnClickListener(newView.OnClickListener(){ @Override publicvoidonClick(Viewview){ Intentintent2=newIntent(); //由MainActivity转向SecondActivity intent2.setClass(MainActivity.this,SecondActivity.class); startActivity(intent2);//按照意图2,启动Activity } });}}在btn2按钮的单击事件监听器中,设置意图:由SecondActivity转向MainActivity。三、任务实施4.运行测试(1)活动注册。测试前,注意需要将第二个Activity即SecondActivity在AndroidManifest.xml中注册,如图2-23所示。MainActivity默认是注册好的。(2)结果展示。连接手机,运行效果如图2-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字编码器课件
- 铁路市场营销市场营销发展的新趋势88课件
- 铁路货物行李包裹损失责任范围与免责条件课件
- 铁路信号与通信设备接发列车工作99课件
- 中国世界名画创意美术课件
- 中东多元文化课件图片
- 高速公路建设工程合同协议
- 版个人住宅买卖合同样本
- 货物采购合同范文
- 农产品批发市场购销合同
- 来料检验规范-(适用于电子厂)(共11份)
- 2024年推动全球治理体系变革
- 介绍国际商事仲裁与调解
- 第三单元《屈原列传》《苏武传》《过秦论》《伶官传序》文言知识综合检测题 统编版高中语文选择性必修中册
- 【典型例题系列】2023-2024学年三年级数学下册重点培优第三单元复式统计表(原卷版)人教版
- 居民死亡医学证明(推断)书+空白表
- 2023年04月北京外国语大学管理及教辅岗位招考聘用笔试历年难易错点考题含答案带详细解析
- (全)美容师(技师)作业模拟考试题库附答案(内部题库2024版)
- 让时间陪你慢慢变富
- 变电站(发电厂)第一、二种工作票格式样本
- 生物化学第三版课后习题答案
评论
0/150
提交评论