嗨,我是新片段。有人可以帮帮我吗?
我有一个回调函数,每按一次按钮就会调用它。在下面的代码中,Ist时间执行一切正常但在执行transaction.replace方法之后,firstfragment永远变为null。因为它是一个回调函数所以这个方法将被多次调用,每次当firstfragment变为null时,它将不执行事务方法(内部条件:if(firstfragment!= null))。 我的代码如下:
private void returnToFragmentB(){
if (_provider != null)
{
android.support.v4.app.FragmentManager manager = getActivity().getSupportFragmentManager();
if(firstfragment !=null)
{
classA obj = firstfragment.getdata();
FragmentTransaction transaction = manager.beginTransaction();
Fragment secondfragment = FragmentB.newInstance(_provider, null, obj.getdata1(), obj.getdata2());
transaction.replace(R.id.fragment_container, secondfragment);
transaction.addToBackStack(null);
transaction.commit();
}
}
}
答案 0 :(得分:0)
那是因为你正在使用replace方法,这意味着你的第一个片段被删除并被替换,如果你想要两个片段,你应该使用add方法并隐藏第一个片段。
实施例
FragmentTransaction transaction = manager.beginTransaction();
Fragment secondfragment = FragmentB.newInstance(_provider, null, obj.getdata1(), obj.getdata2());
transaction.add(R.id.fragment_container, secondfragment);
transaction.hide(yourFirstFragmentTAG);
transaction.addToBackStack(null);
transaction.commit();