In my app I have main Activity which implements a TabLayout which is switching between two fragments. They are handled like this:
private class PagerAdapter extends FragmentPagerAdapter { PagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return position == 0 ? Tab1Frag.getInstance() : Tab2Frag.getInstance(); } @Override public int getCount() { return 2; } @Override public CharSequence getPageTitle(int position) { return position == 0 ? "Tab1" : "Tab2"; } } They both (these fragments) implement from
import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager Otherwise I cannot use them in this manner.
All is working fine but now I face the issue. I want to sometimes change the Tab1 fragment with a different fragment with the following method:
private void replaceFragment(int code) { FragmentTransaction ft = getFragmentManager().beginTransaction();
if(code==0){ ViewListElementFrag fragment = new ViewListElementFrag (); ft.replace(R.id.fragmentFrame, fragment, ViewListElementFrag.TAG); } else if(code==1){ EditElementFragment fragment = new EditElementFragment (); ft.replace(R.id.fragmentFrame, fragment, EditElementFragment.TAG); } ft.commit(); } This is working fine normally, but now it is facing the issue.
FragmentTransaction ft = getFragmentManager().beginTransaction(); Is required to be appv4, but then it does not allow for replacing the fragments from standard android.app.fragment. How can I make it work, so my fragment from tab layout can be replaced by a different fragment? Or do I need to use new activity?
Thank you in advnace Grzegorz
EDIT:
To explain. In the line
ft.replace(R.id.fragmentFrame, fragment, FragmentWhatever.TAG); I get the error that the 2nd argument, fragment, should be of type android.suppotr.v4.app.Fragment