问一下,
使用 startActivityForResult(intent, requestCode);
之后在 新打开的 Activity 中 如何获取 开始时设置的 requestCode;?

解决方案 »

  1.   

    你要在新開的activity得到requestCode幹嘛?
      

  2.   


    //-- A.java --//
    /*
     * 要做两件事情,第一是用 startActivityForResult() 启动B,其次是回收B的结果
     */
    //启动B
    Intent bintent = new Intent(A.this, B.class);
    //设置 bintent的Bundle的一个值
    String bsay = "Hello, this is B speaking"; 
    bintent.putExtra("listenB", bsay)
    startActivityForResult(bintent,0); // 参数(Intent intent, Int requestCode) 的 requestCode 对应下面回收Bundle时识别用的//重写onActivityResult()来处理返回的数据,建议先看B.java 的代码再回来看这里比较好理解
    //这理有三个参数 requestCode, resultCode, data
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (resultCode) { //resultCode为回传的标记,我在B中回传的是RESULT_OK
    case RESULT_OK:
    Bundle b=data.getExtras();  //data为B中回传的Intent
    String str=b.getString("ListenB");//str即为回传的值"Hello, this is B speaking"
    /* 得到B回传的数据后做什么... 略 */
                          break;
    default:
              break;
    }
    }
      

  3.   

    依次打开Activity   A1--A2--A3--A4 这时候你如果想从第四个返回到第一Activity 的时候,
    就用到了startActivityForResult 这个方法了。
    startActivityForResult(intent, requestCode)
    两个参数 一个是第一好的意图对象,另一个是请求代码请求代码是你在startActivityForResult(intent,requestCode);  时传值到另外一个Activity的。
    http://www.iteye.com/topic/577342
      

  4.   


    首先感谢您的回答;
    给Bundel put 一个值我也想过,但是这么很恶心,还要定义2个常量,key和value,
    我记得新打开的Activity中可以获得requestCode?
    是我在梦里?...