在启动另外一个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. android安卓源码海量项目合集打包-1
  2. Android常用控件(一)
  3. [译]Android内存管理: 理解App的PSS
  4. QT 与 android java socket通讯 中文字符
  5. Android 网络框架 android-async-http
  6. Android体系结构-架构
  7. 【Android】开机自启动
  8. android 自定义键盘 KeyboardView的key
  9. 专访罗升阳:老罗的Android之旅
  10. Java乔晓松-android使用ImageSwitcher布