我有两个名为 HomeworkListFragment 和 HomeworkFragment 的 fragment 。
两者都继承自 -> fragment
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();
}
}
但是,这个方法永远不会被调用!
我已在 list 中声明了它们:
<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 是否正在重新创建?
最佳答案
奇怪的是,我漏掉了这行:
super.onActivityResult(requestCode, resultCode, data);
我之前引用了错误的行,但无法弄清楚原因。现在我拥有了!
关于java - onActivityResult() 未使用两个 fragment 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25593689/