Java 未调用片段的onActivityResult
我有两个片段:HomeworkListFragment和HomeworkFragment。HomeworkFragment将启动HomeworkFragment的实例,如下所示: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.
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的活动中?检查一下这个答案。哦,是的,我做了。。当我添加它时,它也不起作用。