移动开发作业二:Activity的生命周期与跳转

Activity的生命周期与跳转

一、设计目标

​ 1、请根据课程内容实现对Activity生命周期的理解,使用log展示生命周期的状态变化;

​ 2、根据博客:https://www.jianshu.com/p/c4cfe38a91ed的内容(进阶篇中的 “点击”),在前次作业的基础上增加列表项的单项点 击功能,具体要求是:新建一个新的activity1,recycleview的某一项点击后跳转到这个新的activity1。如:点击新闻列表会跳转到新 闻详情页面;

​ 3、实现最新的activityforresult功能,具体要求如下:新建一个新的activity2,在activity1上添加按钮可收到activity2的回传值。 如:新闻详情页面中点击收藏按钮可显示当前的收藏数量为N。

二、功能说明

​ 1、重写了MainActivity的各个生命周期调用方法,并使用log进行日志打印来展示生命周期的状态变化。

​ 2、在已有的瀑布流recycleview基础上,增加了点击其中任意一项(图片或文字)即可跳转到新的风景详情界面。

​ 3、使用activityforresut功能实现了在风景详情界面进行点赞,可以获取到另一个ResultActivity所返回的点赞感谢消息。

三、代码解析

1.生命周期的变化,代码如下

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

可以看到当activity进入各个生命周期时会调用对应的方法,比如在创建时调用onCreate(),而在销毁时则调用onDestroy。我们仅仅只需要对它们进行重写即可,并在其内部通过Log打印日志。具体状态转变流程如下:

当Activity启动或从其它Activity跳转到本Activity时,会依次调用本Activity的onCreate、onStart和onResume方法,进入运行状态。

当点击安卓虚拟机的主页面键或跳转到其它Activity时,当前Activity会调用onPause和onStop,停止运行。

当点击安卓虚拟机的回退键后,除了调用onPause和onStop停止Activity外,还会调用onDestroy方法销毁当前Activity。

2.增加recycleView列表项的单项点击功能

在这里插入图片描述

首先为此前自定义的适配器MyAdapter中的类RecommendViewHolder中添加一个LinearLayout属性,并在代码78行将它赋值为recycleView中的一个列表项

在这里插入图片描述

然后再在onBindViewHolder中通过setOnClickListener为它设置点击事件,代码的56、57两行即为具体事,通过创建了一个Intent显式的启动指定的Activity,即跳转到风景详情界面(UI代码较为简单,故不再展示),同时,intent对象也可进行不同Activity间的通信。

3.使用activityforresut功能实现风景详情界面ItemActivity的相关操作

在这里插入图片描述

首先定义了一个按钮btn_getInfo,并设置了它的点击事件,即点赞操作。为了启动一个新页面并从中获取它的回传值,我们需要一个ActivityResultLauncher类的对象,再通过调用它的launch方法并传入一个intent类的对象即可实现该功能。

风景详情页面相关代码:

ActivityResultLauncher类对象可通过registerForActivityResult获取。该方法需要传入两个参数。由于两个参数分别为一个抽象类和一个接口,故我们需要传入对应的实现类。前者我们只需调用对应抽象类中的StartActivityForResult即可获取,而后者则通过匿名内部类实现ActivityResultCallback接口,并重写它的onActivityResult,该方法中定义了获得回传值并返回当前Activity后的逻辑。具体如下:

在这里插入图片描述

36行通过返回码判断是否正常返回,如果返回码是200,则进行后续操作。37行通过getData方法获取新页面返回后回传的intent,38、39行将intent中的数据取出并设置到textView上。

用于获取数据的新页面相关代码(该Activity仅用于回传数据,不要用对UI界面进行配置):
在这里插入图片描述

代码18~20行获取到传入的intent对象并向其中存入数据用于回传,并设置返回码为200,代表设置成功。21行调用finish方法结束当前Activity,并返回ItemActivity页面。

四、运行展示截图

1.生命周期状态变化
在这里插入图片描述

在这里插入图片描述

2.列表项跳转以及值的回传

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、源码仓库地址

gitee地址:移动开发作业

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值