requestCode:
用于判断传过来的数据来自于哪个activity
resultCode:
当一个Activity有多种数据传过来时,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 }