如何将自定义对象数组列表从 activity 传递到带有实例的片段
How to pass custom object arraylist from activity to fragment with instance
我正在使用 viewpager 并创建片段,我想传递数组列表。所以我尝试了以下方法:
主要活动:
private ArrayList<customers> mArrayList = null;
ViewPagerAdapter adapter = new ViewPagerAdapter(MainActivity.this.getSupportFragmentManager());
adapter.addFrag(NewCustomer.newInstance(mArrayList ), "NewCustomer");
现在在片段 class 我正在创建实例:
public static final ArrayList<customers> data = new ArrayList<customers>();
public static final NewCustomer newInstance(ArrayList<customers> mArrayList) {
NewCustomer f = new NewCustomer();
Bundle bdl = new Bundle(1);
bdl.putParcelableArrayList(data, mArrayList);
f.setArguments(bdl);
return f;
}
但这不起作用。它在 bdl.putParcelableArrayList 上显示错误我想获取数组列表并存储到 class 的本地数组列表中。
如何使用我的自定义对象获取数组列表?
你能试试吗?
public static final NewCustomer newInstance(ArrayList<customers> mArrayList) {
NewCustomer f = new NewCustomer();
Bundle bdl = new Bundle(1);
this.data = mArrayList; // assign its Value
bdl.putParcelableArrayList(data, mArrayList);
f.setArguments(bdl);
return f;
}
this.data = mArrayList
会给fragment的当前成员变量赋值。现在我们可以在当前片段中访问它了。
请检查您的模型 class "NewCustomer" 是否实现了 Parcelable。
您传递的第一个参数是错误的。
检查定义:
putParcelableArrayList(String key, ArrayList<? extends Parcelable> value)
在您的片段中定义密钥如下:
public static final String KEY;
要获取数组列表作为片段中的局部变量,请使用以下代码:
@Override
public void onStart() {
super.onStart();
Bundle arguments = getArguments();
ArrayList<customers> customer_list = arguments.getParcelable(KEY);
}
我正在使用 viewpager 并创建片段,我想传递数组列表。所以我尝试了以下方法:
主要活动:
private ArrayList<customers> mArrayList = null;
ViewPagerAdapter adapter = new ViewPagerAdapter(MainActivity.this.getSupportFragmentManager());
adapter.addFrag(NewCustomer.newInstance(mArrayList ), "NewCustomer");
现在在片段 class 我正在创建实例:
public static final ArrayList<customers> data = new ArrayList<customers>();
public static final NewCustomer newInstance(ArrayList<customers> mArrayList) {
NewCustomer f = new NewCustomer();
Bundle bdl = new Bundle(1);
bdl.putParcelableArrayList(data, mArrayList);
f.setArguments(bdl);
return f;
}
但这不起作用。它在 bdl.putParcelableArrayList 上显示错误我想获取数组列表并存储到 class 的本地数组列表中。
如何使用我的自定义对象获取数组列表?
你能试试吗?
public static final NewCustomer newInstance(ArrayList<customers> mArrayList) {
NewCustomer f = new NewCustomer();
Bundle bdl = new Bundle(1);
this.data = mArrayList; // assign its Value
bdl.putParcelableArrayList(data, mArrayList);
f.setArguments(bdl);
return f;
}
this.data = mArrayList
会给fragment的当前成员变量赋值。现在我们可以在当前片段中访问它了。
请检查您的模型 class "NewCustomer" 是否实现了 Parcelable。
您传递的第一个参数是错误的。 检查定义:
putParcelableArrayList(String key, ArrayList<? extends Parcelable> value)
在您的片段中定义密钥如下:
public static final String KEY;
要获取数组列表作为片段中的局部变量,请使用以下代码:
@Override
public void onStart() {
super.onStart();
Bundle arguments = getArguments();
ArrayList<customers> customer_list = arguments.getParcelable(KEY);
}