我在onCreate
方法中添加了一个MainActivity,就像这样:
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame, new FragmentA(), FRAGMENT_TAG).addToBackStack("main")
.commit();
在FragmentA
一个lisview中,当用户单击一个项目时,我将其删除FragmentA
并添加FragmentB
(在FragmentA
一个中,FragmentPagerAdapter
并且在FragmentPagerAdapter
一个ListFragment
in中,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();
如果您想转到中的上Fragment
一个BackStack
,那么您所需要做的就是致电onBackPressed()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句