activity数据回传过程(返回数据给上一个活动)

一个activity回传数据给前一个activity步骤:

1:第一个activity在点击跳转到第二个页面的点击事件里写startActivityForResult(intent, KEY_MSG);

 这里我们使用了startActivityForResult()方法来启动Activity,请求码只要是一个唯一值就可以了,这里传入了KEY_MSG,KEY_MSG为到时候接收第二个activity回传过来的数据的requestCode标志。

2:第二个activity用intent设置要传给第一个activity的数据,并调用setResult进行传递
mIntent.putParcelableArrayListExtra( KEY_MSG_DATA, "HelloFirstActivity");

setResult(RESULT_OK, mIntent);

setResult()方法接收两个参数,第一个参数用于向上一个活动返回处理结果,一般只使用RESULT_OK或RESULT_CANCELED这两个值,第二个参数则是把带有数据的Intent传递回去,最后一定要调用了finish()方法来销毁当前活动(要不然没法跳转)

3:由于我们是使用startActivityForResult()方法来启动第二个Activity的,在第二个Activity被销毁之后会回调上一个活动的onActivityResult()方法,因此我们需要在第一个Activity中重写这个方法,在onActivityResult的data参数中来得到返回的数据

@Override

protected voidonActivityResult(int requestCode, int resultCode, Intent data) {

    switch(requestCode) {

    case KEY_MSG:

        if(resultCode == RESULT_OK) {

            StringreturnedData = data.getStringExtra(KEY_MSG_DATA);

            Log.d("FirstActivity",returnedData);

        }

        break;

    default:

    }

}

注意:

1.如果setResult不带数据的话,这样写

setResult(RESULT_OK, null);

finish();

2.如果setResult返回后不跳到onActivityResult的话,这样写

setResult(RESULT_CANCELED);
finish();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值