




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 真厉害舞蹈题目及答案
- 2025年中国灌浆装置行业投资前景及策略咨询研究报告
- 2025年中国大汁斗行业投资前景及策略咨询研究报告
- 2025年中国全涤四面弹力布行业投资前景及策略咨询研究报告
- 云南省昆明市五华区2025届化学高二下期末学业质量监测模拟试题含解析
- 大学b级英语考试题目及答案
- 大二班的考试题目及答案
- 船山分班考试题目及答案
- 茶艺文化考试题库及答案
- 餐饮管理行业实操考试题及答案
- 育婴员考试题型及答案
- 科室建立血糖管理制度
- 四川成都东方广益投资有限公司下属企业招聘笔试题库2025
- 华为公司试用期管理制度
- 保险合规知识课件
- 2025-2030中国云原生保护平台组件行业前景趋势与投资盈利预测报告
- 商业大厦机电系统调试
- 2025企业并购合同协议模板
- 【恒顺醋业公司基于杜邦分析的盈利能力浅析14000字论文】
- 电网技术改造及检修工程定额和费用计算规定2020 年版答疑汇编2022
- 2025年生态文明建设的考核试卷及答案
评论
0/150
提交评论