Android Activity 之 startActivityForResult 的使用

startActivityForResult 的作用:A—> B,B关闭时返回参数给A

 

AActivity.java

 //打开B
Intent intent = new Intent(this,BActivity.class);startActivityForResult(intent, 1);//startActivityForResult使用这个新的Activity关闭后能返回参数,1是发送参数

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == 1){   //requestCode =1就是上面打开B时传递的发送参数,主要用来区分A打开多个Activity时进行区分
      if(resultCode == RESULT_OK){	//resultCode =RESULT_OK是B传送回来的参数,
	Bundle bundle = data.getExtras();//Intent data为B传送回来的Intent里面带的参数
           String name = bundle.getDouble("name");//得到经纬度
      }		
    }
}

 

 

BActivity.java

 

Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("name", "xiaozhu");
intent.putExtras(bundle);
BActivity.this.setResult(RESULT_OK, intent);	//返回给A的发送参数
BActivity.this.finish();  //必须在setResult后关闭

 

你可能感兴趣的:(android)