Android中startActivity的使用----请求码与结果码的意义

在Android开发中,startActivityForResult方法用于启动一个Activity并接收返回结果。需配合onActivityResult方法处理返回数据。请求码用于区分不同请求,结果码则用于区分多个返回结果。启动时使用startActivityForResult(intent, 请求码),在目标Activity设置结果并调用finish(),如:setResult(结果码)。" 5731710,92951,Proteus VSM SDK 深入解析:图形与电气模型接口,"['图形编程', '模拟仿真', '电气模型', 'VSM接口', '许可授权']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在启动另外一个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、结果码:当返回多个结果时,用来区分结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值