返回数据给上一个活动 --10

1、FristActivity onclick() 事件中通过startActivityForResult()启动活动:

Intent intent = new Intent(FristActivity.this,SecondActivity.class);
startActivityForResult(intent, 1);

StartActivityForResult()方法中有两个参数,参数1 为intent,参数2 为请求码,用于在之后的回调中判断数据的来源;
2、SecondActivity 在onclick()方法中返回数据:

Intent intent = new Intent();
intent.putExtra("return_data", "hello Frist_activity");
setResult(RESULT_OK,intent);

setResult()专门用于向上传递数据,共有两个参数,参数1为用于向上一个活动返回处理值,一般只使用RESULT_OK和RESULT_CANCELED两个值,参数2则是把带有数据的intent传回去。
3、在第一步中我们使用startActivityForResult()启动SecondActivity,则在SecondActivity被销毁前会回调上一个活动的onActivityResult()方法,所以我们需要在FristActivity 中重写该方法来得到返回的值:

protected void onActivityResult(int requestCode,int resultCode,Intent data) {
        switch (requestCode) {
        case 1:
            if(resultCode == RESULT_OK){
            String return_string = data.getStringExtra("return_data");
            Log.d(log_string, return_string);
            }
            break;
        default:
        }
    }

onActivityResult()方法中有三个参数,参数1为我们在启动活动时的请求码,参数2为返回数据时传入的处理结果,参数3为返回数据的intent
由于每一个活动都有可能调用startActivityForResult ()来启动不同的活动,每一个活动返回的数据都会回调到onActivityResult()中,所以我们需要通过请求码来判断数据来源,再通过resultCode来判断处理结果是否正确
通过back键回到FristActivity并回传数据:
重写onBackPressed()方法:

public void onBackPressed(){
        Intent intent = new Intent();
        intent.putExtra("return_data", "hello frist_activity from back");
        setResult(RESULT_OK, intent);       
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值