启动其他Activity并返回结果

本文介绍Android应用程序中Activity之间如何通过requestCode、resultCode及Intent进行数据传递与交互,详细展示了从启动到接收返回数据的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例如FirstActivity需要SecondActivity返回的结果,它们之间的通信是通过
requestCode,resultCode,intent来实现的。
当FirstActivity启动SecondActivity时,会发送一个请求码和一个意图。
Intent intent = new Intent(FirstActivity.this
        ,SecondActivity.class);
startActivityForResult(intent,0);   //requestCode = 0;
SecondActivity会获取启动本界面的意图,将要返回的数据打包进此意图。
此外它还会设置一个结果码。
Intent intent = getIntent();
//将要发送的数据打包进intent
Bundle data = new Bundle();
data.putString("name",String);   //自行设置
intent.putExtras(data);
//设置结果码并传入intent
SecondActivity.this.setResult(0,intent);   //resultCode = 0;
//结束该Activity
SecondActivity.this.finish();
FirstActivity中重写onActivityResult()方法。
@Override
public void onActivityResult(int requestCode , int resultCode , Intent intent){
    if(requestCode == 0 && resultCode == 0){
        //取出intent中的Bundle
        Bundle data = intent.getExtras();
        //取出Bundle中的数据
        String result = data.getString("name");
    }
}

设置请求码和结果码是因为可能有多个界面进行交互,但一旦请求码和结果码同时确定,就可以确定到底是哪两个地方进行交互。
一个Activity(如此例的FirstActivity)可能多出调用startActivityForResult()来打开不同的Activity,这时就要设置不同的请求码(>=0),当这些新的Activity(如此例的SecondActivity)关闭后返回结果,系统会调用前面一个Activity的onActivityResult()方法,通过请求码和结果码同时验证,从而获取不同的结果。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值