作者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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1420602621.A.DEA.html
1F:→ c910335: 去掉super.onBackPressed(); 01/07 12:16
2F:→ kdok123: 真的欸!(这句快变我的口头禅了) 01/07 13:19
3F:→ kdok123: 另外把super.onBackPressed()放在最後面也可 01/07 13:20
4F:→ ssccg: 原本的back处理是 回复actionbar > pop fragment > 关activ 01/07 14:01
5F:→ ssccg: ity,如果自订的流程就是要finish,那再呼叫super的没意义. 01/07 14:02