在启动另外一个Activity的时候,有两种方法,一种是直接使用startActivity,另外一种就是使用startActivityForResult。前一种用来开启一个activity界面,后面一个用来开启activity同时接收返回的结果。

1.跳转的时候不是采用startActivity(intent) 这个方法,而是startActivityForResult(intent, 0)。

1  Intent intent = new  Intent();
2  intent.setClass(A. this , B. class );
3  Bundle bundle = new  Bundle();
4  String str1 = " aaaaaa " ;
5  bundle.putString( " str1 " , str1);
6  intent.putExtras(bundle);
7  startActivityForResult(intent,  0 ); // 这里采用startActivityForResult来做跳转,此处的0为请求码
     

2.重写onActivityResult方法,用来接收B回传的数据。

1   protected   void  onActivityResult( int  requestCode,  int  resultCode, Intent data) {
2   switch  (resultCode) {  //requestCode为本次请求时的请求码, resultCode为返回的结果码
3       case  RESULT_OK:
4           Bundle b = data.getExtras();  // data为B中回传的Intent
5           String str = b.getString( " str1 " ); // str即为回传的值
6           break ;
7     default :
8           break ;
9      }
10   }
   

3.在B中回传数据时采用setResult方法,并且之后要调用finish方法。

setResult(RESULT_OK, intent);  // intent为A传来的带有Bundle的intent,RESULT_OK为返回结果码
finish(); // 此处一定要调用finish()方法,关闭该activity
      


理解:

1、调用startActivityForResult方法可以开启一个获取返回值的activity,在第一个activity中重onActivityResult方法来接收返回的值。

2、请求码:请当同一个activity多次使用startActivityForResult方法获取返回值后,通过请求码来区分是那次请求。

3、结果码:当返回多个结果时,用来区分结果。

更多相关文章

  1. android实现耳机插入和拔出状态检测
  2. Android(安卓)handler使用方法
  3. 2019-01-28 Android(安卓)自定义view
  4. Android中SecureRandom类的安全性浅析
  5. Parcelable序列化
  6. android之ListView和BaseAdapter的组合使用
  7. android中SQLite的操作
  8. Android(安卓)Studio导入项目的几种方法
  9. Android需要提升权限的操作方法

随机推荐

  1. php中遍历数组和购物车结算应用
  2. 意派Epub360丨支付宝集五福活动开始啦!手
  3. 利用Python和OpenCV库将URL转换为OpenCV
  4. pycharm 之导入本地包
  5. 利用Python和OpenCV库将URL转换为OpenCV
  6. python使用opencv进行人脸识别
  7. PHP变量代码演示及简单函数演示
  8. php的运行原理和变量类型
  9. 使用 electron-builder 打包 Electron 程
  10. Python中使用OpenCV库来进行简单的气象学