close
Activity跳轉是基本的流程控制
必須要透過intent來達成Activity的跳轉
而跳轉之後結束另一個Activity並回傳資料給原Activity
則只要使用startActivityForResult即可
1. 官網https://developer.android.com/training/basics/firstapp/starting-activity.html
2. 一般的啟動另一個Activity頁面主要是
Intent intent = new Intent(this, NewActivity.class);
startActivity(intent);
如果沒有特別要帶參數則可寫成
startActivity(new Intent(this, NewActivity.class));
3. 官網https://developer.android.com/training/basics/intents/result.html
4. 要回傳值得寫法, 啟動時要改成startActivityFotResult
其中第二個參數是一個常數, request code(需求碼)
用來判斷設定成請求目標Activity的值
Intent intent = new Intent(this, NewActivity.class);
startActivityForResult(intent, 0);
5. 在被啟動的Activity如果要設定回傳結果
則需要使用setResult
而第一個參數是result code(結果碼)
也是一個常數, 用來判斷是哪個結果所傳
6. 最後在原本的Activity要overriding onActivityResult的方法
而requestCode會和一開始intent的值相同
resultCode則是和setResult的參數一樣
data則是setResult的intent值
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case 0:
Log.d("TAG", "requestCode = " + requestCode);
Log.d("TAG", "resultCode = " + resultCode);
Log.d("TAG", "data = " + data.getStringExtra("RESULT"));
break;
}
}
7. 顯示結果如下
文章標籤
全站熱搜