两个Activity界面之间进行交互

0,先确定有几个Activity界面。
1,创建两个活动Activity1和Activity2
每个活动:
a:extends Activity
在这里插入图片描述
b:重写onCreate方法(敲上onCreate自动补齐)
在这里插入图片描述
c:res/layout中建立layout文件(没有layout文件夹,创建)
在这里插入图片描述
d:关联layout布局文件
在这里插入图片描述
e:在AndroidManifest.xml注册
在这里插入图片描述

f:实例化控件

在这里插入图片描述
2,交互
准备工作:给Button设置监听

在这里插入图片描述
a:单纯的从主界面Activity1跳转到另一个界面Activity2。Activity2不需要任何修改,因为没有数据传输,也不需要再返回Activity1。
在这里插入图片描述
b: 从主界面Activity1跳转到另一个界面Activity2,并从Activity1传递数据到Activity2。
Activity1
在这里插入图片描述
Activity2
在这里插入图片描述
c:从主界面Activity1跳转到另一个界面Activity2,再从Activity2携带数据跳回Activity1。不携带数据也是这样写,只不过不用接收数据罢了)
需要:startActivityForResult(Intent i, int requestCode)和重写onActivityForResult(int requestCode, int resultCode, Intent i)同时使用。

Activity1: onPause1()->onCreate2()->onStart2()->onResume2()->onStop1(),activity1进入后台
在这里插入图片描述
在这里插入图片描述

Activity2: onPause2()->onActivityForResult1()->onRestart1()->onStart1()->onResume1()->onStop2()->onDestory2(),activity2被销毁,其对象从内存中删除(finish2())。因为要使得在返回栈中的activity1(栈底)再次获得焦点(栈顶),就必须弹出当前的栈顶元素activity2。
在这里插入图片描述

Intent i = new Intent(activity1.this, activity2.class);//可携带数据进行跳转到的一(i)次性时光机。
i.putExtra(“姓名”, “李大嘴”);//把数据塞到一次性时光机里。
startActivity(Intent i);//坐着一次性时光机,从activity1跳转到activity2,此时时光机会磨损。(onPause1()->onCreate2()->onStart2()->onResume2()->onStop1())
Intent i = this.getIntent();//跳转到该activity的一次性时光机,已经用了一次,现在到达acitivty2的一次性时光机不能用了,故先复制出一个完好的一次性时光机,再从里面取出来数据。
String str=i.getStringExtras(“姓名”);//
startAcivityForResult(Intent i, int requestCode);//坐着一次性时光机,从activity1跳转到activity2,并告诉activity2,这个请求是哪个按钮发出的(用requestCode标识,须>=0),还告诉它,自己会等它的返回结果。(此时activity已经调用了onStop()方法。)
setReult(int resultCode, Intent i);//投石机,从当前activity投射到主activity,携带着resultCode(标识哪个activity返回的),requestCode(由哪个按钮开启的请求才跳转到进的当前activity),和Intent(一次性时光机),此时一次性时光机只是被携带着,并没有用,所以
onActivityForResult(int requestCode, int resultCode, Intent i);//该activity等待返回结果,投石机把东西扔过来的时候,会先自动调用该方法,再恢复该activity,故重写(onPause2()->onActivityForResult1()->onRestart()-。onStart()->onResume()->onStop2())。而且,因为一次性时光机没有使用,故可直接从Intent中取得数据。

  • 8
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值