有时候需要在调用其它activity后获取其返回值
需要在调用方使用startActivityForResult
public void openSecondActivity(View view){
// this.startActivity(new Intent("com.example.usingintent.SecondActivity"));
this.startActivityForResult(new Intent(this,SecondActivity.class), MainActivity.REQ_CODE_PASS);
}
在目标activity需要返回的地方, 需要设置返回信息并finish activity以返回
public void sendPassword(View view){
Intent ResIntent = new Intent();
EditText Password = (EditText)this.findViewById(R.id.txt_password);
ResIntent.putExtra(MainActivity.EXTRA_PASS, Password.getText().toString());
this.setResult(RESULT_OK,ResIntent);
this.finish();
}
调用方还需要实现onActivityResult以处理返回值, 其中result code和 request code可以区分返回结果和调用句柄
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == MainActivity.REQ_CODE_PASS){
if(RESULT_OK == resultCode){
Toast.makeText(this, "password is"+data.getStringExtra(MainActivity.EXTRA_PASS),Toast.LENGTH_SHORT).show();
}
}
super.onActivityResult(requestCode, resultCode, data);
}