onActivityResult,startActivityForResult,setResult用法解决从后一个activity带参数跳转到前一个activity且不走前activity的onCre

来源:互联网 发布:高仿香港身份证淘宝 编辑:程序博客网 时间:2024/06/06 02:09
   onActivityResult,startActivityForResult,setResult用法解决从后一个activity带参数跳转到前一个activity且不走前activity的onCreate方法
 
Public class a extends Activity  implements View.OnClickListener
{
 
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    super.onActivityResult(requestCode, resultCode, data);//接收来自class B传的数据 
if (resultCode == 200) {//来自class B
Address addr = (Address) data.getSerializableExtra("address");
//我这里接收的类型为Bundle(对象) 如果是Intent(基本类型) 照下面接收:// data.getStringExtra(“key”) 接收类型为String         
if (null != addr){            Log.d(">>>>>>>>>>>>>>",addr.toString());            tv_ensure_order_addr.setText("收货地址:"+addr.getArea()+//省                    addr.getCity()+//市                    addr.getDistrict()+///区                    addr.getStreet()+//街道                    addr.getAddr());//详细地址            tv_ensure_order_name.setText("收货人:"+addr.getName());//姓名            tv_ensure_order_phone.setText(addr.getPhone());//电话            addr_id = addr.getId();        }    }}
 
@Overridepublic void onClick(View view) {    if (view.getId() == tv_addr.getId()){//去选择地址
        //使用startActivityForResult跳转到class B 而不是startActivity        startActivityForResult(new        Intent(this,B.class));    }}
 
 
}
}
 
 
 
 
Public class B extends Activity  implements View.OnClickListener
{
@Overridepublic void onClick(View view) {
case R.id.tv_detail_addr:/*详细地址跳转到页面*/    if (null != ordersActivityUserId){        Address address = new Address();        Bundle bundle = new Bundle();        address.setArea(list.get(position).getArea());        address.setDistrict(list.get(position).getDistrict());        address.setName(list.get(position).getName());        address.setPhone(list.get(position).getPhone());        address.setAddr(list.get(position).getAddr());        address.setStreet(list.get(position).getStreet());        address.setCity(list.get(position).getCity());        address.setId(list.get(position).getId());        bundle.putSerializable("address", address);        setResult(200, new Intent(Person_Addr.this,A.class).putExtras(bundle));
       //我这里传递的类型为Bundle(对象) 如果是Intent(基本类型) 照下面传:
//setResult(new Intent(Person_Addr.this,OrdersActivity.class).putExtra(“key”,”value”));//传的String        finish();//必须调用finish才能把数据传给class A            }
}
}
 
 
 
 

 

1 0
原创粉丝点击