請求碼和結果碼,請求碼
請求碼和結果碼一、簡介
請求碼:
例如請求頁面有多個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的button27 et_phoneNumber=(EditText) findViewById(R.id.et_phoneNum);28 btn_chooseContacter.setOnClickListener(new OnClickListener() {//設定button點擊監聽29 30 @Override31 public void onClick(View v) {//onclick事件32 // TODO Auto-generated method stub33 Intent intent=new Intent(MainActivity.this,Activity01.class);//初始化intent34 //請求碼:resultCode35 startActivityForResult(intent, 1);36 }37 });38 39 40 btn_chooseContacter2=(Button) findViewById(R.id.btn_chooseContacter2);//找id為btn_openActivity的button41 et_phoneNumber2=(EditText) findViewById(R.id.et_phoneNum2);42 btn_chooseContacter2.setOnClickListener(new OnClickListener() {//設定button點擊監聽43 44 @Override45 public void onClick(View v) {//onclick事件46 // TODO Auto-generated method stub47 Intent intent=new Intent(MainActivity.this,Activity02.class);//初始化intent48 //請求碼:resultCode49 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 @Override61 protected void onActivityResult(int requestCode, int resultCode, Intent data) {62 // TODO Auto-generated method stub63 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 (resultCode) {81 case 100:82 et_phoneNumber.setText(bundle.getString("phoneNumber"));83 break;84 case 200:85 et_phoneNumber2.setText(bundle.getString("phoneNumber2"));86 break; 87 default:88 break;89 }90 91 }92 }
activityReturnData.Activity01
1 package activityReturnData; 2 3 4 import com.example.activityReturnData.R; 5 6 import android.app.Activity; 7 import android.content.Intent; 8 import android.os.Bundle; 9 import android.view.View;10 import android.view.View.OnClickListener;11 import android.widget.TextView;12 13 public class Activity01 extends Activity{14 private TextView tv_phoneNum;15 @Override16 protected void onCreate(Bundle savedInstanceState) {17 // TODO Auto-generated method stub18 super.onCreate(savedInstanceState);19 setContentView(R.layout.activity01);20 tv_phoneNum=(TextView) findViewById(R.id.tv_phoneNum);21 tv_phoneNum.setOnClickListener(new OnClickListener() {22 23 @Override24 public void onClick(View v) {25 // TODO Auto-generated method stub26 Intent intent=new Intent();27 intent.putExtra("phoneNumber",tv_phoneNum.getText()); 28 //resultCode,結果碼29 setResult(100, intent);30 finish();31 }32 });33 }34 }
activityReturnData.Activity02
1 package activityReturnData; 2 3 4 import com.example.activityReturnData.R; 5 6 import android.app.Activity; 7 import android.content.Intent; 8 import android.os.Bundle; 9 import android.view.View;10 import android.view.View.OnClickListener;11 import android.widget.TextView;12 13 public class Activity02 extends Activity{14 private TextView tv_phoneNum2;15 @Override16 protected void onCreate(Bundle savedInstanceState) {17 // TODO Auto-generated method stub18 super.onCreate(savedInstanceState);19 setContentView(R.layout.activity02);20 tv_phoneNum2=(TextView) findViewById(R.id.tv_phoneNum2);21 tv_phoneNum2.setOnClickListener(new OnClickListener() {22 23 @Override24 public void onClick(View v) {25 // TODO Auto-generated method stub26 Intent intent=new Intent();27 intent.putExtra("phoneNumber2",tv_phoneNum2.getText()); 28 //resultCode,結果碼29 setResult(200, intent);30 finish();31 }32 });33 }34 }
/activityReturnData/AndroidManifest.xml
1 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 2 package="com.example.activityReturnData" 3 android:versionCode="1" 4 android:versionName="1.0" > 5 6 <uses-sdk 7 android:minSdkVersion="8" 8 android:targetSdkVersion="19" /> 9 10 <application11 android:allowBackup="true"12 android:icon="@drawable/ic_launcher"13 android:label="@string/app_name"14 android:theme="@style/AppTheme" >15 <activity16 android:name="activityReturnData.MainActivity"17 android:label="@string/app_name" >18 <intent-filter>19 <action android:name="android.intent.action.MAIN" />20 21 <category android:name="android.intent.category.LAUNCHER" />22 </intent-filter>23 </activity>24 <activity android:name="activityReturnData.Activity01" android:exported="true"></activity>25 <activity android:name="activityReturnData.Activity02" android:exported="true"></activity>26 </application>27 28 </manifest>
/activityReturnData/res/layout/activity_main.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" > 6 7 <EditText 8 android:id="@+id/et_phoneNum" 9 android:layout_width="match_parent"10 android:layout_height="wrap_content"11 android:ems="10" >12 13 <requestFocus />14 </EditText>15 16 <Button17 android:id="@+id/btn_chooseContacter"18 android:layout_width="318dp"19 android:layout_height="50dp"20 android:text="@string/btn_chooseContacter" />21 22 <EditText23 android:id="@+id/et_phoneNum2"24 android:layout_width="match_parent"25 android:layout_height="wrap_content"26 android:ems="10" >27 28 <requestFocus />29 </EditText>30 31 <Button32 android:id="@+id/btn_chooseContacter2"33 android:layout_width="318dp"34 android:layout_height="50dp"35 android:text="@string/btn_chooseContacter" />36 37 </LinearLayout>