Android 实现数据回传

我们在开发项目中经常遇到需要把数据传回上一个页面的情况,这时候我们就可以用到

startActivityForResult(intent, 1) 这个方法,这里面带有两个参数,第一个是你要跳转的对象,第二个是传送码

假如我们现在要从activityA →activityB

我们现在activityA中输入以下代码:

Intent intent = new Intent(activityA.this, activityB);
startActivityForResult(intent, 0);

然后在activityB中

在使用setResult(0, intent) 方法跳转,这里参数1 是回传码 参数2 是跳转目的

输入回传的参数:

点击按钮返回:

listViewForScrollView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent intent = new Intent();
        intent.putExtra("selfAddress", ponitList.get(position).getFullRegion());
        // 设置结果,并进行传送
        SearchPoint.this.setResult(0, intent);
        finish();
    }
});

物理返回键返回:

@Override
public void onBackPressed() {
    // super.onBackPressed();//不能够有该行代码,否则返回崩溃
    Intent intent = new Intent();
    intent.putExtra(“dataBack”, “Hello Back”);
    setResult(RESULT_OK, intent);
    finish();
}

最后再activityA中在接受:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    change01 = data.getStringExtra("address");
    selfAddress = data.getStringExtra("selfAddress");
    // 根据上面发送过去的请求吗来区别
    switch (requestCode) {
        case 0x4:
            if(resultCode == RESULT_OK){
                tv_address.setText(change01);                                        
            }
            break;
        case 0:
            tv_choose_address_detail.setText(selfAddress);
            tv_ztadress.setText(selfAddress);
            break;
        default:
            break;
    }
}

在这个方法中 是根据你发过去的请求码来区别的,例如前面的代码我发送过去的请求码是0,然后回退码是 RESULT_OK ,这里就是根据请求码来执行相对应的结果,图中代码执行的就是 case 0 一下的结果。

这样数据回传就完成了。

希望对你有帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值