Android:onActivityResult() 没有调用

我面临与 onActivityResult() 相关的问题。

我使用 TabActivity 作为主要 Activity。每个选项卡都是活动组。

ActivityGroup 的子活动 A(Activity) 使用

startActivityForResult( , ) 。

但是当 B Activity 完成时,在 A 中不会调用 onActivityResult()。

一个活动

Intent intent = new Intent(A.this, B.class);
startActivityForResult(intent, 1);

B活动

Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();

怎么了?

因为 TabActivity、ActivityGroup 或 Flag??

请指教..

stack overflow Android: onActivityResult() is not calling
原文答案

答案:

作者头像

TabActivity 中的 ActivityGroup 的问题。我想finishFromChild 将在父活动中被调用(在TabHost 中)。核实。

实际上......你真的需要 TabActivity 里面的 ActivityGroup 吗?!避免它,例如在父 TabActivity 的每个选项卡中使用简单的 TabHost 视图,这样 TabActivity 将切换视图,而不是活动。

作者头像

使用下面的代码,我希望它会工作。

 Intent intent = new Intent(getParent(), B.class);
    startActivityForResult(intent, 1); 
作者头像

尝试使用包含当前活动的 startActivityForResult 的上下文调用 tabgroup activity ,然后在 tabgroup activity. 中监听

使用它来获取 tabGroupActivity

TabGroupActivity parentActivity = (TabGroupActivity)getParent();

然后从中调用 startActivityForResult

parentActivity.startActivityForResult(...);

最后,在 tabGroupActivity 中放置一个 onActivityResult 监听器:

protected void onActivityResult(int requestCode, int resultCode,Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);
    }