本帖最後由 firemaples 於 2014-1-9 13:37 編輯
MainActivity: (呼叫Activity_B)
- final int fromActivity_B = 999; //用來辨別是從哪裡回傳回來的(定義成全域變數)
複製代碼- Intent intent = new Intent(MainActivity.this, Activity_B.class);
- intent.putExtra("seq", targetSeq);
- startActivityForResult(intent, fromActivity_B); //使用startActivityForResult 並傳入 fromActivity_B
複製代碼
Activity_B: (Activity_B 完成時)
- Intent intent = new Intent();
- intent.putExtra("isSign", isSign);
- intent.putExtra("seq", seq);
- setResult(RESULT_OK, intent); //使用setResult + intent回傳值
- finish();//結束Activity_B
複製代碼
MainActivity (接收回傳值):
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if(resultCode == RESULT_OK){
- switch (resultCode) {
- case fromActivity_B: //呼叫Activity_B時帶上的判別用數值
- Bundle extras = data.getExtras();
- Boolean isSign = extras.getBoolean("isSign");
- int seq = extras.getInt("seq");
- break;
- }
- }
- super.onActivityResult(requestCode, resultCode, data);
- }
複製代碼 |