[英]How can go to the previous fragment in backstack?
I have a MainActivity in the onCreate
method i add a fragment like this : 我在
onCreate
方法中有一个MainActivity,我添加了一个像这样的片段:
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, new FragmentA(), FRAGMENT_TAG).addToBackStack("main")
.commit();
In FragmentA
there is a lisview and when user clicked on an item i remove FragmentA
and add FragmentB
(In FragmentA
there is a FragmentPagerAdapter
and in FragmentPagerAdapter
is a ListFragment
in ListFragment
i called below code ) 在
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();
};
Now in FragmentB
there is button and whenever user clicked on it i want to go back to the FragmentA
. 现在在
FragmentB
有一个按钮,每当用户单击它时,我都想回到FragmentA
。 I try to call popBackStack()
in button listener but nothing happen 我尝试在按钮侦听器中调用
popBackStack()
,但没有任何反应
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
fragmentManager.popBackStack();
Or i also try this below code but it gives me nullpointer exception 或者我也尝试下面的代码,但这给了我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.