我有四个以编程方式创建的片段,我使用新实例方法将一些数据作为列表发送到这些片段中。
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时,它会创建第四个片段,然后创建第三个片段。屏幕上的当前片段是第四个片段,但当我检查myList
和myString
时,它们引用我发送给片段3的列表。如何为每个片段指定参数或者我如何强制FragmentPagerAdapter
创建一个片段?
答案 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) {
}