使用具有给定一个或两个ArrayLists的适配器填充列表视图

时间:2013-12-18 14:24:40

标签: android arraylist android-arrayadapter

我在Activity中有一个列表视图,我使用给定的ArrayList填充适配器。在此类Elements中保留变量。 所以在这个ListView中我有分类,子类别和元素。在某些情况下,只有元素,在其他情况下只有类别,在其他类别和元素中同时存在。类别必须是一个元素,当单击该元素转到另一个活动时,该元素将成为显示信息的简单元素。

在有子类别和元素的情况下,我正在创建一个全新的ArrayList,其中包含ArrayList和ArrayList,然后它有2个子数组。我的适配器的构造函数看起来像这样

public class AchivsListAdapter extends ArrayAdapter<Elements> {

ArrayList<Elements> eItems;
ArrayList<Categories> cItems;
LayoutInflater inflater;

public AchivsListAdapter(Context context, int resource, ArrayList<Elements> ee) {
    super(context, resource, ee);
    this.eItems = ee;
    this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

如何使适配器适用于所有给定的情况?

1 个答案:

答案 0 :(得分:0)

如果类别和元素是类似的对象,我会编辑Element类并给它一个布尔属性isCategory,这样你就可以有一个元素的ArrayList,并在适配器中检查当前位置是否包含Category或Element并为第二个设置onClickListener。