startActivityForResult的用法

在切换界面时,原有的界面需要从新界面取得某些数据,这时需要用到startActivityForResult,比如说从activity1跳转到activity2,边看代码边说用法吧:

activity1的代码片段:这是跳转到activity2

Intent intent = new Intent(Activity1.this, Activity2.class);
startActivityForResult(intent, GET_CODE);

这里的GET_CODE是int型,值随意定,用途在后面讲。

activity2的代码片段,这是当activity2的任务完成后返回时的代码:

setResult(RESULT_OK, (new Intent()).setAction("Corky!"));
finish();

当activity2在finish之后,activity1会接收到消息,系统会调用activity1中的onActivityResult方法:

protected void onActivityResult(int requestCode, int resultCode,Intent data) {
        if (requestCode == GET_CODE) {
            //do something
            if (resultCode == RESULT_CANCELED) {
             //do something
            } else {
             //do something
          }
     }
}

注意这里的GET_CODE要与上面代码中的GET_CODE对应起来,用途大概已经明白了,就是说activity1可能会跳转到很多不同的界面来获得信息,那么怎么区分呢,就用这个GET_CODE,我们这里只有一个。参数中的resultCode的值是由activity2中的setResult的第一个参数决定的,data则为可选参数,可以传递更多的信息。



本文固定链接: http://www.ntxz.net/?p=1781 | 周忞 | 吉心的记事本



该日志由 吉心 于2012年02月09日发表在 Android 分类下, 你可以发表评论
在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: startActivityForResult的用法 | 周忞 | 吉心的记事本
关键字: ,

startActivityForResult的用法:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!