作者kdok123 (小天)
看板AndroidDev
標題[問題]startActivityForResult搭配onBackPressed
時間Wed Jan 7 11:50:19 2015
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
→ c910335: 去掉super.onBackPressed(); 01/07 12:16
→ kdok123: 真的欸!(這句快變我的口頭禪了) 01/07 13:19
→ kdok123: 另外把super.onBackPressed()放在最後面也可 01/07 13:20
→ ssccg: 原本的back處理是 回復actionbar > pop fragment > 關activ 01/07 14:01
→ ssccg: ity,如果自訂的流程就是要finish,那再呼叫super的沒意義. 01/07 14:02