我有一个viewpager,我正在使用FragmentPagerAdapter。现在,FragmentPagerAdapter的tab 0有一个选项,它将用户带到一个片段,称之为片段B - 它在viewpager itslef中用片段B替换了tab 0的片段。这个片段B有一个选项可以打开一个活动,现在当我在活动中按回来时,我想回到标签0,而不是片段B.我如何实现这个目标?
Tab 0的片段调用片段B:
public void onClick(View view) {
TagFrag f = new TagFrag();
getFragmentManager().beginTransaction()
.add(R.id.note_container, f).addToBackStack(null).commit();
}
答案 0 :(得分:2)
更新2:
This Repo通过具体示例(适用于Android Studio 1.0.1)演示此答案
更新1: 注意答案: onActivityResult
应放在FragmentB
而不是FirstActivity
在 FragmentTab0 中,添加FragmentB ilike:
getFragmentManager().beginTransaction()
.add(R.id.note_container, f).addToBackStack(null).commit();
在 FragmentB 中,使用startActivityForResult
Intent intent = new Intent((FirstActivity)getActivity(), SecondActivity.class);
startActivityForResult(intent, 1234); // 1234 is the RequestCode
在 SecondActivity 中,覆盖onBackPressed
@Override
public void onBackPressed() {
setResult(Activity.RESULT_OK);
super.onBackPressed();
}
在 FragmentB 覆盖onActivityResult
并致电[getFragmentManager().popBackStack()
] [2]
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1234) { // previously defined request code
// Make sure the request was successful
if (resultCode == RESULT_OK) {
getFragmentManager().popBackStack(); // magic happens here.
}
}
}
享受!