Feb092012
startActivityForResult的用法
在切换界面时,原有的界面需要从新界面取得某些数据,这时需要用到startActivityForResult,比如说从activity1跳转到activity2,边看代码边说用法吧:
activity1的代码片段:这是跳转到activity2
1.
Intent intent =
new
Intent(Activity1.
this
, Activity2.
class
);
2.
startActivityForResult(intent, GET_CODE);
这里的GET_CODE是int型,值随意定,用途在后面讲。
activity2的代码片段,这是当activity2的任务完成后返回时的代码:
1.
setResult(RESULT_OK, (
new
Intent()).setAction(
"Corky!"
));
2.
finish();
当activity2在finish之后,activity1会接收到消息,系统会调用activity1中的onActivityResult方法:
01.
protected
void
onActivityResult(
int
requestCode,
int
resultCode,Intent data) {
02.
if
(requestCode == GET_CODE) {
03.
//do something
04.
if
(resultCode == RESULT_CANCELED) {
05.
//do something
06.
}
else
{
07.
//do something
08.
}
09.
}
10.
}
注意这里的GET_CODE要与上面代码中的GET_CODE对应起来,用途大概已经明白了,就是说activity1可能会跳转到很多不同的界面来获得信息,那么怎么区分呢,就用这个GET_CODE,我们这里只有一个。参数中的resultCode的值是由activity2中的setResult的第一个参数决定的,data则为可选参数,可以传递更多的信息。