Android中startActivity的使用----請求碼與結果碼的意義
阿新 • • 發佈:2019-01-27
在啟動另外一個Activity的時候,有兩種方法,一種是直接使用startActivity,另外一種就是使用startActivityForResult。前一種用來開啟一個activity介面,後面一個用來開啟activity同時接收返回的結果。
1.跳轉的時候不是採用startActivity(intent) 這個方法,而是startActivityForResult(intent, 0)。
1 Intent intent=new Intent();2 intent.setClass(A.this, B.class);
3 Bundle bundle=new Bundle();
4 String str1
5 bundle.putString("str1", str1);
6 intent.putExtras(bundle);
7 startActivityForResult(intent, 0);//這裡採用startActivityForResult來做跳轉,此處的0為請求碼
2.重寫onActivityResult方法,用來接收B回傳的資料。
1protectedvoid onActivityResult(int requestCode, int resultCode, Intent data) {2switch (resultCode) { //requestCode為本次請求時的請求碼,
4Bundle b=data.getExtras(); //data為B中回傳的Intent5String str=b.getString("str1");//str即為回傳的值6break;
7default:
8break;
9}
10}
3.在B中回傳資料時採用setResult方法,並且之後要呼叫finish方法。
setResult(RESULT_OK, intent); //intent為A傳來的帶有Bundle的intent,RESULT_OK為返回結果碼finish();//此處一定要呼叫finish()方法,關閉該activity理解:
1、呼叫startActivityForResult方法可以開啟一個獲取返回值的activity,在第一個activity中重寫onActivityResult方法來接收返回的值。
2、請求碼:請當同一個activity多次使用startActivityForResult方法獲取返回值後,通過請求碼來區分是那次請求。
3、結果碼:當返回多個結果時,用來區分結果。