【发布时间】:2016-02-06 23:11:03
【问题描述】:
我正在尝试实例化一个“发送”自定义对象数组列表的片段,但我找不到确切的方法。我想我可能不得不使用Serializable 或Parcelable(如另一个答案所示),但即使在阅读了该答案后我也不确定如何实现它。
有人可以帮助我吗?提前致谢。
实例化代码
Fragment f = new Fragment();
ArrayList<IconsCategory> category = Utils.getCategory();
ArrayList<IconItem> icons = category.getIconsArray();
f = IconsFragment.newInstance(icons);
return f;
片段中用于创建实例的代码:
我知道args.putArrayList() 方法不存在,我只是写它来展示我希望如何编写它。
public static IconsFragment newInstance(ArrayList<IconItem> list) {
IconsFragment fragment = new IconsFragment();
Bundle args = new Bundle();
args.putArrayList(list); // here's where the code is supposed to go
fragment.setArguments(args);
return fragment;
}
IconsCategory 类:
import java.util.ArrayList;
public class IconsCategory {
private String name;
private ArrayList<IconItem> iconsArray = new ArrayList<>();
public IconsCategory(String name, ArrayList<IconItem> iconsArray) {
this.name = name;
this.iconsArray = iconsArray;
}
public String getCategoryName() {
return this.name;
}
public ArrayList<IconItem> getIconsArray() {
return iconsArray.size() > 0 ? this.iconsArray : null;
}
}
IconItem 类:
public class IconItem {
private String name;
private int resId;
public IconItem(String name, int resId){
this.name = name;
this.resId = resId;
}
public String getName(){
return this.name;
}
public int getResId(){
return this.resId;
}
}
【问题讨论】:
标签: java android android-fragments arraylist instance