如何为每个片段放置特定数据

时间:2014-07-09 11:06:16

标签: android android-fragments

我有四个以编程方式创建的片段,我使用新实例方法将一些数据作为列表发送到这些片段中。

public static FragmentMasaDesign newInstance(ArrayList<String> myList, String myString) {
    FragmentMasaDesign myFragment = new FragmentMasaDesign();
    Bundle args = new Bundle();
    args.putStringArrayList("myList", myList);
    args.putString("myString", myString);
    myFragment.setArguments(args);
    return myFragment;
}
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    this.list = getArguments().getStringArrayList("myList");
    this.string= getArguments().getString("myString");
 }

当我按顺序切换片段时没有问题。然而,当我将片段1交换为4时,它会创建第四个片段,然后创建第三个片段。屏幕上的当前片段是第四个片段,但当我检查myListmyString时,它们引用我发送给片段3的列表。如何为每个片段指定参数或者我如何强制FragmentPagerAdapter创建一个片段?

1 个答案:

答案 0 :(得分:0)

如果您使用的是newInstance方法,则可以直接设置变量,而无需致电setArguments()getArguments()

public static FragmentMasaDesign newInstance(ArrayList<String> myList, String myString) {
    FragmentMasaDesign myFragment = new FragmentMasaDesign();
    myFragment.list = list;
    myFragment.string = myString;
    return myFragment;
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                     Bundle savedInstanceState) {

}