requestCode:

           用于判断传过来的数据来自于哪个activity

resultCode:

           当一个Activity有多种数据传过来时,resultCode就可以用来判断传过来的数据的类型

 

下面用一个例子说明吧,首先看结果

Android中 requestCode与resultCode的区别与用法

 

说明:

   三个按钮两个编辑框

  点击单选联系人与单选回复有两个activity,分别选联系人与回复,这样就可以利用 requestCode来判断数据来自于那个activity

  点击同时选,会出现两列数据,一列联系人,一列回复。选好联系人会跳转到上一个activity,把联系人填好,然后再点击按钮选好回复,自动跳转到上一个activity填好回复。(并不能算真正的同时选,只是为了理解resultCode的用法,来判断传过来的是联系人还是回复)

下面上代码吧:

# SimperActivity.java(MainActivity.java)

 1 package com.example.lynn.adapter.Intent;
 2 
 3 import android.app.Activity;
 4 import android.content.Intent;
 5 import android.os.Bundle;
 6 import android.view.View;
 7 import android.widget.Button;
 8 import android.widget.EditText;
 9 
10 import com.example.lynn.adapter.R;
11 
12 public class SimperActivity extends Activity {
13 
14     final int NAME = 1;
15     final int SMS = 2;
16     //三个Activity的请求码
17     final int NAME_ACTIVITY = 0;
18     final int SMS_ACTIVITY = 3;
19     final int SELECT_ACTIVITY = 4;
20     private Button select;
21     private Button selectName;
22     private Button selectSms;
23     EditText nameText;
24     EditText smsText;
25 
26     @Override
27     protected void onCreate(Bundle savedInstanceState) {
28         super.onCreate(savedInstanceState);
29         setContentView(R.layout.simper_layout);
30         select = (Button) findViewById(R.id.select);
31         selectName = (Button) findViewById(R.id.singer_name);
32         selectSms = (Button) findViewById(R.id.singer_sms);
33         nameText = (EditText) findViewById(R.id.name);
34         smsText = (EditText) findViewById(R.id.sms);
35         select.setOnClickListener(new View.OnClickListener() {
36             @Override
37             public void onClick(View v) {
38                 Intent intent = new Intent(SimperActivity.this, SelectActivity.class);
39                 startActivityForResult(intent, SELECT_ACTIVITY);
40             }
41         });
42     }
43 
44 
45     @Override
46     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
47         super.onActivityResult(requestCode, resultCode, data);
48         String n, s;
49         switch (requestCode) {
50             case (NAME_ACTIVITY):
51                 n = data.getStringExtra("name");
52                 nameText.setText(n);
53                 break;
54             case (SMS_ACTIVITY):
55                 s = data.getStringExtra("sms");
56                 smsText.setText(s);
57                 break;
58             case (SELECT_ACTIVITY): {
59                 if (resultCode == NAME) {
60                     n = data.getStringExtra("name");
61                     nameText.setText(n);
62                 } else if (resultCode == SMS) {
63                     s = data.getStringExtra("sms");
64                     smsText.setText(s);
65                 }
66             }
67             break;
68         }
69 
70     }
71 
72     //单选联系人的点击事件
73     public void toSelectName(View v) {
74         Intent intent = new Intent(SimperActivity.this, SelectPersonActivity.class);
75         startActivityForResult(intent, NAME_ACTIVITY);
76 
77     }
78 
79     //单选回复的点击事件
80     public void toSelectSms(View v) {
81         Intent intent = new Intent(SimperActivity.this, SelectSmsActivity.class);
82         startActivityForResult(intent, SMS_ACTIVITY);
83 
84     }
85 }
View Code

相关文章: