[英]How can go to the previous fragment in backstack?
我在onCreate
方法中有一个MainActivity,我添加了一个像这样的片段:
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, new FragmentA(), FRAGMENT_TAG).addToBackStack("main")
.commit();
在FragmentA
有一个lisview,当用户单击某个项目时,我删除FragmentA
并添加FragmentB
(在FragmentA
有一个FragmentPagerAdapter
,在FragmentPagerAdapter
是ListFragment
中的ListFragment
我在下面的代码中调用)
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
getActivity().getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, new FragmentB(), MainActivity.FRAGMENT_TAG).addToBackStack("main")
.commit();
};
现在在FragmentB
有一个按钮,每当用户单击它时,我都想回到FragmentA
。 我尝试在按钮侦听器中调用popBackStack()
,但没有任何反应
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
fragmentManager.popBackStack();
或者我也尝试下面的代码,但这给了我nullpointer异常
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
String fragmentTag = fragmentManager.getBackStackEntryAt(fragmentManager.getBackStackEntryCount() - 1).getName();
Fragment currentFragment =getActivity().getSupportFragmentManager()
.findFragmentByTag(fragmentTag);
fragmentManager.beginTransaction().replace(R.id.content_frame,currentFragment).commit();
fragmentManager.popBackStack();
如果要转到BackStack
的上一个Fragment
,则只需执行onBackPressed()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.