1 /** 2 * 3 * 函数名称 : registerListener 4 * 功能描述 : 注册监听 5 * 参数及返回值说明: 6 * 7 * 修改记录: 8 * 日期:2011-12-13 上午10:14:03 修改人:gy 9 * 描述 : 10 * 11 */ 12 private void registerListener() 13 { 14 btnStartActivityForResult.setOnClickListener(new OnClickListener() 15 { 16 @Override 17 public void onClick(View v) 18 { 19 //初始化 Intent 对象 20 Intent intent = new Intent(); 21 //setClass方法:指定 Intent 要启动的 Activity 22 //参数一:表示原先 Activity 的环境条件对象(Context) 23 //参数二:表示被启动的 Activity 的 Class 对象 24 intent.setClass(StartIntentForResult_Demo1.this, ResultActivity1.class); 25 //启动一个新的 Activity 26 //startActivityForResult 使这个新的 Activity 关闭后能返回参数 27 //参数二:1 是发送参数,主要用来区分当前 Activity 打开多个 Activity 时进行返回值的区分 28 startActivityForResult(intent, 1); 29 } 30 }); 31 } 32 33 /** 34 * 函数名称 : onActivityResult 35 * 功能描述 : 返回此 Activity 时调用此方法 36 * 参数说明: 37 * @param requestCode 就是当前Activity 中 startActivityForResult(intent, 1) 方法中第二个参数的值 38 * @param resultCode ResultActivity1.this.setResult(Activity.RESULT_OK, intent) 这个返回结果的参数一的值 39 * @param data Intent 对象 40 * 返回值: 41 * 42 * 修改记录: 43 * 日期:2011-12-13 下午1:55:16 修改人:gy 44 * 描述 : 45 * 46 */ 47 @Override 48 protected void onActivityResult(int requestCode, int resultCode, Intent data) 49 { 50 super.onActivityResult(requestCode, resultCode, data); 51 System.out.println("调用了 StartIntentForResult_Demo1 的 onActivityResult 方法,requestCode:" + requestCode + " resultCode:" + resultCode); 52 //requestCode = 1 就是上面打开 ResultActivity1 时传递的发送参数,主要用来区分当前 Activity 打开多个 Activity 时进行返回值的区分 53 if(requestCode == 1) 54 { 55 //resultCode = Activity.RESULT_OK 是 ResultActivity1 传送回来的参数值 56 if(resultCode == Activity.RESULT_OK) 57 { 58 String strResult = data.getStringExtra("result"); 59 tvResult.setText(strResult); 60 } 61 } 62 }
新的Activity返回信息的方法
//初始化 Intent 对象 Intent intent = new Intent(); //setClass方法:指定 Intent 要启动的 Activity //参数一:表示原先 Activity 的环境条件对象(Context) //参数二:表示被启动的 Activity 的 Class 对象 intent.setClass(ResultActivity1.this, StartIntentForResult_Demo1.class); intent.putExtra("result", "这是点击 ResultActivity1 的 btnBack1 按钮返回的数据"); //启动一个新的 Activity //setResult方法:设置返回给 Activity 的结果 //参数一:返回的代码 //参数二:Intent 对象 ResultActivity1.this.setResult(Activity.RESULT_OK, intent); //销毁当前 Activity,并返回到 StartIntentForResult_Demo1,而且会调用 StartIntentForResult_Demo1 的 onActivityResult 方法 //(注意:这句不能少,不然不会返回到 StartIntentForResult_Demo1) ResultActivity1.this.finish();