[英]onActivityResult() not called with two fragments
I have two Fragments named HomeworkListFragment and HomeworkFragment. 我有两个名为HomeworkListFragment和HomeworkFragment的片段。
BOTH INHERIT FROM -> Fragment 继承自->片段
Intent i = new Intent(getActivity(),HomeworkPagerActivity.class);
i.putExtra(HomeworkFragment.EXTRA_HOMEWORK_ID, homework.getId());
startActivityForResult(i,REQUEST_DELETE_HOMEWORK_ID);
This is how I start MyFragment from MyListFragment. 这就是我从MyListFragment启动MyFragment的方式。
After I finish, I want to call this from MyFragment: 完成后,我想从MyFragment中调用它:
Intent i = new Intent();
i.putExtra(EXTRA_DELETE_HOMEWORK_ID, mHomework.getId());
getActivity().setResult(Activity.RESULT_OK, i);
//Toast.makeText(getActivity(), "deleting?", Toast.LENGTH_SHORT).show();
//getActivity().finish();
NavUtils.navigateUpFromSameTask(getActivity());
Back in MyListFragment I've implemented: 回到MyListFragment中,我已经实现了:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, 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();
}
}
However, this method is never called! 但是,永远不会调用此方法!
I've declared them both in my manifest: 我在清单中都声明了它们:
<activity
android:name=".HomeworkListFragment"
android:label="@string/app_name"
android:launchMode="singleTop" >
<meta-data android:name="android.support.PARENT_ACTIVITY"
android:value=".HomeworkTabFragment"/>
</activity>
<activity
android:name=".HomeworkFragment"
android:label="@string/app_name" >
<meta-data android:name="android.support.PARENT_ACTIVITY"
android:value=".HomeworkListFragment"/>
</activity>
Is part of the answer with: NavUtils.navigateUpFromSameTask(getActivity()); 是答案的一部分:NavUtils.navigateUpFromSameTask(getActivity());
Is MyListFragment getting recreated? 是否重新创建MyListFragment?
Strangely enough, I was missing out the line: 奇怪的是,我错过了这一行:
super.onActivityResult(requestCode, resultCode, data);
I had referenced the wrong line previously and could not figure out why. 我之前引用了错误的行,却无法弄清原因。 Now I have it! 现在我拥有了!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.