I'm having a hard time understanding how to replace fragment
s using the FragmentPagerAdapter
. I have a class that extends FragmentPagerAdapter
(android.support.v13.app.FragmentPagerAdapter
) and my MainActivity implements ActionBar
.TabListener
, in the FragmentPageAdapter
class I use the getItem()
to setup my 3 fragment
s. so far so good.
One of these fragment
s is a ListView
(pos #1), which I use a Listener to check on the onItemClick()
.
I want to replace the current ListView
Fragment
with another fragment
so what I did is that inside the onItemClick()
I perform the following code:
FragmentManager mFragmentManager = mActivity.getFragmentManager();
//new fragment to replace
Fragment mFragment = new TabPlaceFragment();
mFragmentManager.beginTransaction()
.replace(R.id.pager, mFragment)
.addToBackStack(null)
.commit();
What this is doing is that the fragment is replace with a blank fragment
, I'm assuming is the pager, but the mFragment
does not get replace. I tried giving an Id to the Current fragment
and tried replacing it.
mFragmentManager.beginTransaction()
.replace(R.id.frament_old, mFragment)
.addToBackStack(null)
.commit();
But what this does is that it overlaps the new fragment
on top of the old fragment
finally I tried getting the Id of the fragment
to replace with the new, but this also gave me a blank fragment
.
//this gives me the current fragment I want to replace
Fragment mCurrent = mFragmentManager.findFragmentByTag(MainHelper.getFragmentName(mViewPager.getId(), 1));
mFragmentManager.beginTransaction()
.replace(mCurrent.getId(), mFragment)
.addToBackStack(null)
.commit();
I'm sure I'm not implementing the method correctly but I cannot find a good example to follow the logic of my code. I thought of putting the fragment replacement in the MainActivity
under getItem()
, but don't know how to call it from within my onItemClick()
Listener.
Any help is highly appreciated!!!
Thanks.