搜档网
当前位置:搜档网 › 黑马程序员安卓教程:Activity中的请求码和结果码

黑马程序员安卓教程:Activity中的请求码和结果码

黑马程序员安卓教程:Activity中的请求码和结果码
黑马程序员安卓教程:Activity中的请求码和结果码

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 。

相关主题