有返回值的startActivity---------startActivityForResult()
1 从one Activity跳到 two Activity:
?
startActivity(new intent(this,two.class));
?
但是我们想在two里加个按钮,当点击时就返回到原来的one中,
?
这时我们当然可以在点击事件中写:
?
startActivity(new intent(this,one.class));
?
但是我们还有另一种方法:
?
从one Activity跳到 two Activity:
?
startActivityResult(new intent(this,two.class),1);
?
1 是用来标记是否是这个startActivityResult的返回值的,一般情况下如果只有一个startActivityResult,没有什么作用,但是如果我们one中有两个startActivityResult,我们可以用1,2......来区分是那个startActivityResult的返回值,确定这个返回结果是谁返回的。
?
我们跳到two中了,在two里的按钮的点击事件中返回到one:
?
?this.setResult(RESULT_OK);
? this.finish();
?
这样把RESULT_OK这个值返回给了one,在one的
?protected void onActivityResult(int requestCode, int resultCode, Intent data) {}
中处理:
? ? @Override
? ? protected void onActivityResult(int requestCode, int resultCode, Intent data) {
? ? ? ? super.onActivityResult(requestCode, resultCode, data);
? ? ? ? if (resultCode==RESULT_OK&&requestCode==1) {
?
? ? ? ? ? ? ? //要做的事。
?
? ? ? ? }
? ? }
?
2 我们想把数据从one带到two,再从two带到one:
1 ---->2; 1中:
Intent?intent =?"second");??
?
?
?
?