Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 未为SherlockFragmentActivity调用onActivityResult(…)_Android_Actionbarsherlock_Android Fragmentactivity - Fatal编程技术网

Android 未为SherlockFragmentActivity调用onActivityResult(…)

Android 未为SherlockFragmentActivity调用onActivityResult(…),android,actionbarsherlock,android-fragmentactivity,Android,Actionbarsherlock,Android Fragmentactivity,我在未调用ActivityResult(…)时遇到问题。我正在改编另一个应用程序中的工作代码,在这个应用程序中一切正常,但我现在使用的是Fragments 主要的活动如下所示 public class RecordingsPagerActivity extends SherlockFragmentActivity implements RecordingsListFragment.Callbacks { private final int SHOW_DETAIL_DIALOG

我在未调用ActivityResult(…)时遇到问题。我正在改编另一个应用程序中的工作代码,在这个应用程序中一切正常,但我现在使用的是
Fragments

主要的
活动如下所示

public class RecordingsPagerActivity extends SherlockFragmentActivity 
    implements RecordingsListFragment.Callbacks {

    private final int SHOW_DETAIL_DIALOG = 1234;

    // RecordingsListFragment.Callbacks method
    @Override
    public void onRecordingsItemSelected(int oid) {
        showGuideDetailDialog(oid);
    }

    ...

    private void showGuideDetailDialog(int oid) {
        Intent i = new Intent(this, GuideDetailActivity.class);
        i.putExtra("oid", oid);
        startActivityForResult(i, SHOW_DETAIL_DIALOG);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        Log.d(TAG, "onActivityResult() entered - requestCode: " + requestCode + " - resultCode: " + resultCode);

        ...
    }
}
基本上,当选择
片段中的列表项时,
片段
调用
onRecordingsItemSelected(…)
回调方法,
GuideDetailActivity
(扩展了
活动
)显示良好。根据我选择的按钮,
GuideDetailActivity
中的
onClick(…)
方法设置结果并调用
finish()

问题是,我从未在logcat中看到
Log.d(…)
的输出。正如我所说,它在一个只使用
活动创建的应用程序中运行良好(它是从我的原始源代码中复制/粘贴的)


是否有什么东西会导致
片段活动
无法收到结果,这意味着我需要以不同的方式执行操作?

您是否有任何片段实现了
onActivityResult()
?否。我应该这样做吗?或者你的意思是他们可能正在拦截结果?片段还可以使用
startActivityForResult()
并实现
onActivityResult()
。框架应该将结果路由到正确的位置(基于
requestCode
AFAIK)。我在问你的碎片是否会干扰这一地区的主要活动。如果你被难倒了,如果你能创建一个重现你的问题的示例项目,把它贴在某个地方,我会看一看。@commonware:好的,谢谢你的想法。我开始认为我应该使用
Fragment
方法来处理
startActivityForResult()
onActivityResult()
,因为寻呼机中的4个片段之间存在细微的差异。然后,我可以使用从片段中的
onActivityResult()
方法回调到
FragmentActivity
。谢谢你抽出时间。