Activity跳轉是基本的流程控制

必須要透過intent來達成Activity的跳轉

而跳轉之後結束另一個Activity並回傳資料給原Activity

則只要使用startActivityForResult即可

 

1. 官網https://developer.android.com/training/basics/firstapp/starting-activity.html

01.png

 

2. 一般的啟動另一個Activity頁面主要是

Intent intent = new Intent(this, NewActivity.class);
startActivity(intent);

如果沒有特別要帶參數則可寫成
startActivity(new Intent(this, NewActivity.class));

02.png

 

3. 官網https://developer.android.com/training/basics/intents/result.html

03.png

 

4. 要回傳值得寫法, 啟動時要改成startActivityFotResult

其中第二個參數是一個常數, request code(需求碼)

用來判斷設定成請求目標Activity的值

Intent intent = new Intent(this, NewActivity.class);
startActivityForResult(intent, 0);

03-1.png

 

5. 在被啟動的Activity如果要設定回傳結果

則需要使用setResult

而第一個參數是result code(結果碼)

也是一個常數, 用來判斷是哪個結果所傳

 04.png

 

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;
}
}

05.png

 

7. 顯示結果如下

06.png  

arrow
arrow

    RX1226 發表在 痞客邦 留言(0) 人氣()