如何在单击该片段的按钮时替换片段? [英] How to replace a Fragment on button click of that fragment?
问题描述
我有一个包含多个片段的活动.活动最初有片段,其中有两个按钮.单击此按钮后,我必须用新片段替换片段.每个片段都有各种小部件,并将当前片段替换为各种事件.
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 new fragment. Each fragment has various widgets and replace the current fragment as various events.
这是我的问题.我怎样才能做到这一点?
This is my problem. How can I achieve this?
建议我的想法.
推荐答案
你可以用 FragmentTransaction 替换 fragment.
you can replace fragment by FragmentTransaction.
给你.
制作界面.
public interface FragmentChangeListener
{
public void replaceFragment(Fragment 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();
}
}
像这样从 Fragment 调用这个方法.
Call this method from Fragments like this.
//在你的片段中.
public void showOtherFragment()
{
Fragment fr=new NewDisplayingFragment();
FragmentChangeListener fc=(FragmentChangeListener)getActivity();
fc.replaceFragment(fr);
}
希望这会奏效!
注意:mContainerId 是持有片段的视图的 ID.您还应该覆盖 Fragment 的 onString() 方法.
这篇关于如何在单击该片段的按钮时替换片段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!