Activity中的请求码和结果码
在“开启Activity获取返回值二“中,我们通过方法onActivityResult(int requestCode, int resultCode, Intent data)来接收另一个即将退出的Activity返回数据。在该方法中requestCode,resultCode代表什么?它们有什么用呢?具体分析如下:
1.创建一个Activity
在“05_短信发送器“工程中,新建一个Activity命名为:SmsContentActivity,代表页面C,该页面用来部署一些常见的短信内容。代码如例1-1:
例1-1在SmsContentActivity中用一个ListView列表来列举常见的短信内容,并编写了该ListView的setOnItemClickListener方法,即点击ListView的某一个条目时将该短信内容返回到上一个页面A中。
2.跳转页面C
调整“05_短信发送器“主页面,布局如下图1-1所示:
图1-1所示
在短信发送的主页面中,当点击按钮常见“插入快捷短信“时,执行点击事件“insertSms“,在主Activity 中编写该点击事件,代码如例1-2:
例1-2
2.接收返回数据
在发送短信的主页面A中编写接收页面C返回的数据,代码如下例1-3所示:
系人电话页面B所返回的数据,当结果码为2时代表常见短信内容页面C返回的数据。这是通过结果码来判断返回数据,下面我们还可以通过请求码requestCode来判断返回数据所来自的页面。代码如例1-3:
例1-3
运行程序,效果如图1-2所示:
跳转页面
返回数据
图1-2所示
由于每个activity 都可以启动任意的子activity 并等待结果,而结果处理函数只有一个--onActivityResult(int requestCode, int resultCode, Intent intent),因此为了区别请求的activity ,android 将每个请求Activity 设定一个大于等于0的int 值,这就是requestcode 。由此,在onActivityResult 函数中即可利用requestCode 区别开不同的返回结果;同理子Activity 也可以返回一个Int 的结果码resultCode ,通过判断该结果码来区别返回数据所来自的子Activity 。