Android中startActivity的使用----请求码与结果码的意义
16lz
2021-01-26
在启动另外一个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、结果码:当返回多个结果时,用来区分结果。
更多相关文章
- android实现耳机插入和拔出状态检测
- Android(安卓)handler使用方法
- 2019-01-28 Android(安卓)自定义view
- Android中SecureRandom类的安全性浅析
- Parcelable序列化
- android之ListView和BaseAdapter的组合使用
- android中SQLite的操作
- Android(安卓)Studio导入项目的几种方法
- Android需要提升权限的操作方法