activity请求码与结果码

void     startActivityForResult(Intent intent, int requestCode)

void     startActivityForResult(Intent intent, int requestCode, Bundle options)

void     onActivityResult(int requestCode, int resultCode, Intent data)

final void     setResult(int resultCode)

final void     setResult(int resultCode, Intent data)

requestCode 请求码,即调用startActivityForResult() 传递过去的值

resultCode 结果码,结果码用于标识返回数据来自哪个新Activity

二.请求码的作用

使用startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,我们需要为startActivityForResult()方法传入一个请求码(第二个参数)。请求码的值是根据业务需要由自已设定,用于标识请求来源。例如:一个Activity有两个按钮,点击这两个按钮都会打开同一个Activity,不管是那个按钮打开新Activity,当这个新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。在onActivityResult()方法如果需要知道新Activity是由那个按钮打开的,并且要做出相应的业务处理,这时可以这样做:

public void onCreate(Bundle savedInstanceState) {

....

button1.setOnClickListener(new View.OnClickListener(){

public void onClick(View v) {

startActivityForResult (new Intent(MainActivity.this, NewActivity.class), 1);

}

});

button2.setOnClickListener(new View.OnClickListener(){

public void onClick(View v) {

startActivityForResult (new Intent(MainActivity.this, NewActivity.class), 2);

}

});

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {

switch(requestCode){

case 1:

//来自按钮1的请求,作相应业务处理

case 2:

//来自按钮2的请求,作相应业务处理

}

}

}

三.结果码的作用

在一个Activity中,可能会使用startActivityForResult()方法打开多个不同的Activity处理不同的业务,当这些新Activity关闭后,系统都会调用前面Activity的onActivityResult(int requestCode, int resultCode, Intent data)方法。为了知道返回的数据来自于哪个新Activity,在onActivityResult()方法中可以这样做(ResultActivity和NewActivity为要打开的新Activity):

public class ResultActivity extends Activity {

.....

ResultActivity.this.setResult(1, intent);

ResultActivity.this.finish();

}

public class NewActivity extends Activity {

......

NewActivity.this.setResult(2, intent);

NewActivity.this.finish();

}

public class MainActivity extends Activity { // 在该Activity会打开ResultActivity和NewActivity

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

switch(resultCode){

case 1:

// ResultActivity的返回数据

case 2:

// NewActivity的返回数据

}

}

}

上面的栗子说明,requestCode 和 resultCode都是返回提出请求的MainActivity结果处理函数onActivityResult()使用的标识,只是requestCode 主要用来标识是MainActivity也就是请求Activity发出的哪个请求,而resultCode则是标识哪个Activity处理并返回的请求。

但是,无论requestCode 还是 resultCode都无法用于处理请求的Activity标识是谁发出的请求。因此需要自行传递参数到处理请求的Activity。

时间: 2024-10-09 06:46:42

activity请求码与结果码的相关文章

请求码和结果码

请求码和结果码 一.简介 请求码: 例如请求页面有多个button,根据请求码就知道是哪个button在请求 结果码: 多个请求可以打开多个页面,根据结果码就知道我们打开的是哪个界面 请求码是用来标识请求源的,结果码是用来标识结果源的. 二.具体步骤 这里演示结果码的 1.界面1里面的结果码是100 setResult(100, intent); 2.界面2里面的结果码是200 setResult(200, intent); 3.在主界面的 onActivityResult方法中根据结果码判断数

HTTP/1.1标准请求方法和状态码

HTTP/1.1标准自从1999年制定以来至今仍然是一个应用广泛并且通行的标准 相关文档 RFC2616:Hypertext Transfer Protocol -- HTTP/1.1 在RFC6585中,状态码428.429.431.511加了进来 RFC2616制订了关于HTTP/1.1的一系列标准 下面我们来关注请求方法和状态码 在第九章中,请求方法包括GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT一共七个,其中GET.POST在编程中用得最多 HEAD:只返

HTTP请求方法与状态码

HTTP请求方法 根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP1.0定义了三种请求方法:GET,POST和HEAD方法. HTTP1.1新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE 和 CONNECT方法. GET:请求制定的页面信息,并返回实体主体. HEAD:类似于get请求.只不过返回的响应中没有具体的内容,用于获取报头. POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件).数据被包含在请求体中.POST请求可能会导致新的资源的建

robot framework——httplibrary.http接口自动化库 ——get response status关键字——获取http请求返回的状态码

get response status关键字——获取http请求返回的状态码. ======================================================= 示例:获取百度搜索soapui返回的http状态码 create  http  context www.baidu.com/ scheme=https get /s?wd=soapui&pn=10&oq=soapui&tn=50000021_hao_pg&ie=utf-8&rs

二维码快速扫码优化方案介绍(一)--怎么在光线不足时,手机自动进行补光。

二维码扫码已经是一个很通用的技术了,也有很多的开源项目可以实现,比如Zxing项目.https://github.com/zxing 这里重点不是介绍Zxing中是怎么样来实现二维码扫码的,而是来介绍一下,微信上的快速扫码技术是如何来做到优化体验的. 要实现在光线不足时,手机自动进行补光,其实很简单,每个人都知道,手机上有很多的传感器,其中有一个很重要的传感器就是光线传感器. 这个大家平时在拍照的时候,都用到过.那么如何能把这个应用到二维码的扫码体验上来呢. 我们可以利用手机的光线传感器进行外部

C(++) Websocket实现扫码二维码登录---GoEasy

最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要解决两个问题: 1.  在没有输入用户名及密码的情况下,如何解决权限安全问题?换句话讲,如何让服务器知道扫码二维码的客户端是一个合法的用户? 2.  服务器根据用户在客户端的选择如何实时在网页上作出相应的响应? 首先我们先理一下微信的实现思路,来方便我们理解解决这一难题的思路方向.微信登录的二维码实

C(++) 实现扫码二维码登录

最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要解决两个问题: 1.  在没有输入用户名及密码的情况下,如何解决权限安全问题?换句话讲,如何让服务器知道扫码二维码的客户端是一个合法的用户? 2.  服务器根据用户在客户端的选择如何实时在网页上作出相应的响应? 首先我们先理一下微信的实现思路,来方便我们理解解决这一难题的思路方向.微信登录的二维码实

node.js 实现扫码二维码登录

最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要解决两个问题: 1.  在没有输入用户名及密码的情况下,如何解决权限安全问题?换句话讲,如何让服务器知道扫码二维码的客户端是一个合法的用户? 2.  服务器根据用户在客户端的选择如何实时在网页上作出相应的响应? 首先我们先理一下微信的实现思路,来方便我们理解解决这一难题的思路方向.微信登录的二维码实

Websocket 实现扫码二维码登录

最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式.当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些. 要实现扫码登录我们需要解决两个问题: 1.  在没有输入用户名及密码的情况下,如何解决权限安全问题?换句话讲,如何让服务器知道扫码二维码的客户端是一个合法的用户? 2.  服务器根据用户在客户端的选择如何实时在网页上作出相应的响应? 首先我们先理一下微信的实现思路,来方便我们理解解决这一难题的思路方向.微信登录的二维码实