How to replace a Fragment on button click of that fragment?

后端 未结 6 1042
南笙
南笙 2020-11-30 09:00

I have an activity containing multiple fragments. Activity initially have fragment and in it have two buttons. Upon clicking this button I have to replace the fragment by ne

6条回答
  •  粉色の甜心
    2020-11-30 09:29

    you can replace fragment by FragmentTransaction.

    Here you go.

    Make an interface.

    public interface FragmentChangeListener 
    {
        public void replaceFragment(Fragment fragment); 
    }
    

    implements your Fragment holding activity with this interface.

    public class HomeScreen extends FragmentActivity implements
            FragmentChangeListener {
    
    
             @Override
             public void replaceFragment(Fragment fragment) {
                FragmentManager fragmentManager = getSupportFragmentManager();;     
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.replace(mContainerId, fragment, fragment.toString());
                fragmentTransaction.addToBackStack(fragment.toString());
                fragmentTransaction.commit();   
        }
    
    }
    

    Call this method from Fragments like this.

    //In your fragment.

    public void showOtherFragment()
    {
           Fragment fr=new NewDisplayingFragment();
                 FragmentChangeListener fc=(FragmentChangeListener)getActivity();
                 fc.replaceFragment(fr);
    }
    

    Hope this will work!

    NOTE: mContainerId is id of the view who is holding the fragments inside. You should override Fragment's onString() method as well.

提交回复
热议问题