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后关闭 ?