[問題]startActivityForResult搭配onBackPressed

看板AndroidDev作者 (小天)時間11年前 (2015/01/07 11:50), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/1
A.class onCreate: { Intent intent = new Intent("test1");//會跳到B.class Bundle bundle = new Bundle(); bundle.putString("toB", "toB"); intent.putExtras(bundle); startActivityForResult(intent, 1); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case 1: if (resultCode == RESULT_OK) { String returnValue = data.getExtras().getString("toA"); Log.e("onActivitiyResult", returnValue); } break; default: } } ----------------------------------------------------------------------------- B.class public void onBackPressed() { super.onBackPressed(); Intent intent = getIntent(); Bundle bundle = intent.getExtras(); Log.e("Act2", ""+bundle.getString("toB")); bundle.putString("toA","toA"); intent.putExtras(bundle); setResult(RESULT_OK, intent); finish(); } 我如果把這個fun寫在B.class的onCreate,A.class的onActivityResult就找得到 但寫在onBackPressed()就無法 但我希望使用者從A跳到B時,若按了Back鍵可以回傳值,應該要寫在這沒錯吧? 請問是哪個地方出問題了呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.228.150.131 ※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1420602621.A.DEA.html

01/07 12:16, , 1F
去掉super.onBackPressed();
01/07 12:16, 1F

01/07 13:19, , 2F
真的欸!(這句快變我的口頭禪了)
01/07 13:19, 2F

01/07 13:20, , 3F
另外把super.onBackPressed()放在最後面也可
01/07 13:20, 3F

01/07 14:01, , 4F
原本的back處理是 回復actionbar > pop fragment > 關activ
01/07 14:01, 4F

01/07 14:02, , 5F
ity,如果自訂的流程就是要finish,那再呼叫super的沒意義.
01/07 14:02, 5F
文章代碼(AID): #1KhApztg (AndroidDev)