Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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
Java 未调用片段的onActivityResult_Java_Android_Android Activity_Android Fragments_Lifecycle - Fatal编程技术网

Java 未调用片段的onActivityResult

Java 未调用片段的onActivityResult,java,android,android-activity,android-fragments,lifecycle,Java,Android,Android Activity,Android Fragments,Lifecycle,我有两个片段:HomeworkListFragment和HomeworkFragment。HomeworkFragment将启动HomeworkFragment的实例,如下所示: HomeworkObject homework = new HomeworkObject(); HomeworkLab.get(getActivity()).addHomework(homework); Intent i = new Intent(getActivity(),HomeworkPagerActivity.

我有两个片段:HomeworkListFragment和HomeworkFragment。HomeworkFragment将启动HomeworkFragment的实例,如下所示:

HomeworkObject homework = new HomeworkObject();
HomeworkLab.get(getActivity()).addHomework(homework);
Intent i = new Intent(getActivity(),HomeworkPagerActivity.class);
i.putExtra(HomeworkFragment.EXTRA_HOMEWORK_ID, homework.getId());
startActivityForResult(i,REQUEST_DELETE_HOMEWORK_ID);
在my HomeworkFragment类中,我希望用户能够按选项菜单中的按钮删除HomeworkObject的此实例,该实例由HomeworkListFragment传递给HomeworkFragment

因此,我所需要的只是能够让HomeworkFragment将包含HomeworkObject id的结果返回给HomeworkListFragment,以便它能够处理删除:

@Override
public boolean onOptionsItemSelected(MenuItem item){
    switch(item.getItemId()){
        case android.R.id.home:
            if(NavUtils.getParentActivityName(getActivity()) != null){
                NavUtils.navigateUpFromSameTask(getActivity());
            }
            return true;
        case R.id.menu_item_detail_delete_homework: //Deleting the Homework
            Intent i = new Intent();
            i.putExtra(EXTRA_DELETE_HOMEWORK_ID, mHomework.getId());
            getActivity().setResult(Activity.RESULT_OK, i);
            //getActivity().finish();
            NavUtils.navigateUpFromSameTask(getActivity());
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
我尝试了以下方法,但是从未调用HomeworkListFragment中的onActivityResult

正如你所看到的,我试图调用getActivity.finish,但我在其他帖子中看到,这不是正确的方法。。我也试过从Sametask导航。。这也不对吗

以下是我的家庭工作列表片段onActivityResult:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(int requestCode, int resultCode, Intent data);
    Toast.makeText(getActivity(), "HERE", Toast.LENGTH_SHORT).show();    
    if  (requestCode == REQUEST_DELETE_HOMEWORK_ID){
        String filename = data.getStringExtra(HomeworkFragment.EXTRA_DELETE_HOMEWORK_ID);
        Toast.makeText(getActivity(), "ID: "+filename, Toast.LENGTH_SHORT).show();    
    }
}
更新:


我不应该调用:NavUtils.navigateUpFromSameTaskgetActivity

奇怪的是,我遗漏了super.onActivityResultrequestCode、resultCode和数据


我之前引用了错误的行,不知道为什么。现在我有了!但我花了两个月的时间…

你是否调用了super.onActivityResultrequestCode、resultCode、data;在承载HomeworkListFragment的活动中?检查一下这个答案。哦,是的,我做了。。当我添加它时,它也不起作用。