请求码和结果码
一、简介
请求码:
例如请求页面有多个button,根据请求码就知道是哪个button在请求
结果码:
多个请求可以打开多个页面,根据结果码就知道我们打开的是哪个界面
请求码是用来标识请求源的,结果码是用来标识结果源的。
二、具体步骤
这里演示结果码的
1、界面1里面的结果码是100
setResult(100, intent);
2、界面2里面的结果码是200
setResult(200, intent);
3、在主界面的 onActivityResult方法中根据结果码判断数据来源于哪个页面
switch (resultCode) {
case 100:
et_phoneNumber.setText(bundle.getString("phoneNumber"));
break;
case 200:
et_phoneNumber2.setText(bundle.getString("phoneNumber2"));
break;
default:
break;
}
三、代码实例
下面的代码时返回值,实质和用intent传值是一样的,都是getExtras和putExtras
这里是测试结果码,请求码的测试在代码的注释里面有
结果图:
打开第一个按钮进入一个界面,打开第二个按钮进入另外一个界面
代码:
activityReturnData.MainActivity
1 package activityReturnData;
2
3
4
5
6 import com.example.activityReturnData.R;
7
8 import android.app.Activity;
9 import android.content.Intent;
10 import android.os.Bundle;
11 import android.view.View;
12 import android.view.View.OnClickListener;
13 import android.widget.Button;
14 import android.widget.EditText;
15
16
17
18 public class MainActivity extends Activity{
19 private Button btn_chooseContacter;//创建一个button对象
20 private EditText et_phoneNumber;
21 private Button btn_chooseContacter2;//创建一个button对象
22 private EditText et_phoneNumber2;
23 protected void onCreate(Bundle savedInstanceState) {
24 super.onCreate(savedInstanceState);//父类操作
25 setContentView(R.layout.activity_main);//引入名为activity_main的界面
26 btn_chooseContacter=(Button) findViewById(R.id.btn_chooseContacter);//找id为btn_openActivity的button
27 et_phoneNumber=(EditText) findViewById(R.id.et_phoneNum);
28 btn_chooseContacter.setOnClickListener(new OnClickListener() {//设置button点击监听
29
30 @Override
31 public void onClick(View v) {//onclick事件
32 // TODO Auto-generated method stub
33 Intent intent=new Intent(MainActivity.this,Activity01.class);//初始化intent
34 //请求码:resultCode
35 startActivityForResult(intent, 1);
36 }
37 });
38
39
40 btn_chooseContacter2=(Button) findViewById(R.id.btn_chooseContacter2);//找id为btn_openActivity的button
41 et_phoneNumber2=(EditText) findViewById(R.id.et_phoneNum2);
42 btn_chooseContacter2.setOnClickListener(new OnClickListener() {//设置button点击监听
43
44 @Override
45 public void onClick(View v) {//onclick事件
46 // TODO Auto-generated method stub
47 Intent intent=new Intent(MainActivity.this,Activity02.class);//初始化intent
48 //请求码:resultCode
49 startActivityForResult(intent, 2);
50 }
51 });
52
53 }
54 /*
55 * Activity01调用完finish()方法销毁之后,就会调用MainActivity的onActivityResult方法
56 * 因为Activity01完成后会返回调用它的方法
57 * (non-Javadoc)
58 * @see android.app.Activity#onActivityResult(int, int, android.content.Intent)
59 */
60 @Override
61 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
62 // TODO Auto-generated method stub
63 super.onActivityResult(requestCode, resultCode, data);
64 //就是如果没有传值回来的情况,直接return就ok了
65 if(data==null) return;
66 Bundle bundle=data.getExtras();
67 String phoneNumber=bundle.getString("phoneNumber");
68
69 // switch (requestCode) {
70 // case 1:
71 // et_phoneNumber.setText(phoneNumber);
72 // break;
73 // case 2:
74 // et_phoneNumber2.setText(phoneNumber);
75 // break;
76 // default:
77 // break;
78 // }
79
80 switch (resultCo