版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 承接活动协议
- 2024年度第四人民医院食堂餐饮服务合同3篇
- 二零二四年超声波传感器技术开发合同
- 二零二四年度数字档案馆建设与服务合同
- 2024年电子设备维修打胶合同
- 二零二四年滑雪场规划地形图保密合作协议3篇
- 二零二四年度安居工程项目施工合同
- 医疗机构药品合同
- 商场内餐饮企业的燃气安全协议书(2篇)
- 二零二四年度电商平台内容版权合作与授权合同3篇
- 高二物理竞赛圆管流动中的离散课件
- GB/T 17554.1-2006识别卡测试方法第1部分:一般特性测试
- 国际贸易-FOB详解
- 残疾学生送教上门记录
- OMNI软件介绍与应用
- 肿瘤科普课件
- 基于SpringCloud-微服务系统设计方案(完整资料)
- 护士长管理能力提升-课件
- 四年级数学上册试题- 竞赛试题A卷(含答案)人教新课标
- 六年级家长会完整版课件
- 发现你的优势课件
评论
0/150
提交评论