我有两个名为HomeworkListFragment和HomeworkFragment的片段。
BOTH INHERIT FROM - >片段
Intent i = new Intent(getActivity(),HomeworkPagerActivity.class);
i.putExtra(HomeworkFragment.EXTRA_HOMEWORK_ID, homework.getId());
startActivityForResult(i,REQUEST_DELETE_HOMEWORK_ID);
这是我从MyListFragment启动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());
回到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();
}
}
但是,永远不会调用此方法!
我已经在我的清单中声明了它们:
<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>
是答案的一部分:NavUtils.navigateUpFromSameTask(getActivity());
是否重新创建了MyListFragment?
答案 0 :(得分:0)
奇怪的是,我错过了这条线:
super.onActivityResult(requestCode, resultCode, data);
之前我曾引用错误的行,但无法找出原因。现在我拥有它!