Android 多次重新添加任何片段容器

Android 多次重新添加任何片段容器,android,android-fragments,fragment,back-stack,Android,Android Fragments,Fragment,Back Stack,前一天我问了一个问题,即: 我的问题已经找到了…但是旧的片段正在刷新(加载)…这不是必需的(因为它包含分页)。我知道刷新旧片段的原因是我使用了FragmentTransaction。将goToFragmentWithBackStack方法中的替换为方法。如果我将使用FragmentTransaction。将添加到goToFragmentWithBackStack方法中,它将不再工作,新数据将在旧片段中更新 类似这样的内容:A(旧数据)->B->A(新数据)[如我所愿..预期结果] 但显示我是否使

前一天我问了一个问题,即:

我的问题已经找到了…但是旧的片段正在刷新(加载)…这不是必需的(因为它包含分页)。我知道刷新旧片段的原因是我使用了FragmentTransaction。将goToFragmentWithBackStack方法中的替换为方法。如果我将使用FragmentTransaction。将添加到goToFragmentWithBackStack方法中,它将不再工作,新数据将在旧片段中更新

类似这样的内容:A(旧数据)->B->A(新数据)[如我所愿..预期结果] 但显示我是否使用了FragmentTransaction。在goToFragmentWithBackStack中替换方法:A(加载/刷新旧数据)->B->A(加载/刷新新数据)

如果我使用了FragmentTransaction.addgoToFragmentWithBackStack方法:A(旧数据)->B->nothing

如果我检查按下的Backback on back按钮,它会显示如下内容:


如果我使用了FragmentTransaction.replace中的goToFragmentWithBackStack方法:A(加载/刷新旧数据)在goToFragmentWithBackStack()方法中,您使用类名作为标记。所以FragmentA应该始终具有相同的标记,即使您创建了一个新实例。因此,为片段指定一个唯一的标记,并检查值是否保留

删除if()条件并始终创建新的片段实例

public static void goToFragmentWithBackStack(Fragment fragment) {            
    ft = fm.beginTransaction();

    ft.add(R.id.content_frame, fragment, fragment.getClass().getName());
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
    ft.addToBackStack(null);
    ft.commit();
    currentTag = fragment.getClass().getName();
}

我没有尝试此代码,请检查此代码。

添加FragmentTransaction.replace函数的一些代码。。。。理想情况下,我会在创建时将数据作为参数传递给新片段,您可以使用getArgument()方法在片段中检索数据您好,我添加了与链接中相同的代码..我想您没有理解我的意思..我已使用“替换”方法成功添加了所有这些函数..我只想“添加”同一片段多次出现,而不是“替换”是。。您可以使用“replace”方法在不同的实例中多次添加相同的片段粘贴您正在使用的代码
  LeftAndRightActivity.goToFragmentWithBackStack(new ExploreFragment(theWord,"#"));
public ExploreFragment(String data,String pattern) {
this.str_data = data;   
this.str_pattern = pattern;
}
public static void goToFragmentWithBackStack(Fragment fragment) {            
    ft = fm.beginTransaction();

    ft.add(R.id.content_frame, fragment, fragment.getClass().getName());
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
    ft.addToBackStack(null);
    ft.commit();
    currentTag = fragment.getClass().getName();
}