startActivityForResult()用法

来源:互联网 发布:上古世纪 范冰冰数据 编辑:程序博客网 时间:2024/05/21 08:45
跳转页面时,原有的界面有时需要从新界面取得数据,
这就需要用startActivityForResult来跳转,
如,从activityA跳转到activityB:
activityA的主要跳转过程代码代码:跳转到activityB,要求返回数据
Intent intent = new Intent(this, ActivityB.class);
startActivityForResult(intent, NUM);
GET_CODE是int型,任意数值
activityB的主要跳转代码,activityB结束返回时的代码
setResult(RESULT_OK, (new Intent()).setAction("Corky!"));
finish();
而在ActivityA中需要重写发放onActivityResult来获取数据
当activityB在finish之后,activityA会接收到消息,系统会调用activityA中的onActivityResult方法:
protected void onActivityResult(int requestCode, int resultCode,Intent data) {
        if (requestCode == NUM) {
            //do something
            if (resultCode == RESULT_CANCELED) {
             //do something
            } else {
             //do something
          }
     }
}
ActivityA的NUM与ActivityB的NUM相同,主要用来区分跳转页面
就是说activityA可能会跳转到很多不同的界面来获得信息,那么怎么区分呢,
就用这个NUM。
参数中的resultCode的值是由activityB中
的setResult的第一个参数决定的,data则为可选参数,可以传递更多的信息。
0 0
原创粉丝点击