android Activity数据传递onActivityResult与setResut

返回其他页面的object
1.object需要实现serlizable。
2.第二个页面做以下操作。设置intent携带的数据,通过setResult设置请求码和intent。

                    Intent intent = getIntent();
                    Bundle bundle=new Bundle();
                    bundle.putSerializable(ActivityConstants.EXTRA_CONTRACT_ADDRESS_KEY,list.get(position));
                    intent.putExtras(bundle);

                    setResult(ActivityConstants.RESULT_ADDRESS_ID_CODE, intent);
                    finish();

在上个页面中的处理:重写onActivityResult,判断resultCode,获取intent携带的值。

   @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        if(resultCode==ActivityConstants.RESULT_ADDRESS_ID_CODE){
            if(data!=null){
                Bundle bundle=data.getExtras();

                serviceAddressBean= (ServiceAddressBean) bundle.getSerializable(ActivityConstants.EXTRA_CONTRACT_ADDRESS_KEY);
                if(serviceAddressBean!=null){
                    ServiceAddress.setText(serviceAddressBean.getDetailedAddress());
                }

            }
        }

    }

需要注意的是启动模式要是默认的。若为singleTask
则onActivityResult
获取不到数据。

你可能感兴趣的:(Android应用开发)