有三個Activity: A.java ,B.java ,C.java
java
Activity之間的跳轉經常使用方法:web
1. startActivity(Intent intent);this
該方法只用於啓動新的Activityspa
2.startActivityForResult(Intent intent, int requestCode);code
該方法作兩件事:一.啓動新的Activity 二.回收啓動的Activity返回的結果orm
(1)A.java中ci
startActivityForResult(Intent intent, int requestCode);get
requestCode: 是自定義的int型常量, requestCode >=0。string
例:
it
if(條件){ Intent intent = new Intent(this, B.class); startActivityForResult(intent, REQUEST_CODE_01);//跳轉至B.java }else{ Intent intent = new Intent(this, C.class); startActivityForResult(intent, REQUEST_CODE_02);//跳轉至C.java }
(2)B.java 或者C.java
setResut(int resultCode, Intent intent)
resultCode:用於標識B.java幾種不一樣的返回結果。沒有特殊狀況時,用RESULT_OK。
例:
Intent intent = new Intent(); intent.putExtra(key, value); // 或者將數據打包到Bundle setResult(RESULT_OK, intent);
(3)A.java
onActivityResult(int requestCode, int resultCode, Intent data)
requestCode: 用於區分哪一個子模塊回傳的數據。
data: 回傳的數據。
Bundle b = data.getExtras();
String str = b.getString("string");
resultCode: 與setResult()中相對應
例:
public void onActivityResult(int requestCode, int resultCode, Intent data){ switch (requestCode) { case REQUEST_CODE_01: if(resultCode==Activity.RESULT_OK) //do something break; case REQUEST_CODE_02: //do something break; } }