【发布时间】:2013-12-18 14:24:40
【问题描述】:
我在一个 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);
}
如何使适配器适用于所有给定的情况?
【问题讨论】:
-
有什么方法可以从 Elements 和 Categories 类中抽象出一些常见的东西?为简单起见,我们可以将这个新的基类称为 Thing。然后你可以让你的 ArchivsListAdapter 扩展 ArrayAdapter
。创建一个名为adapterArray 的新实例变量,类型为ArrayList 。这将是您将适配器绑定到的数组。然后,在构造函数中,执行所需的逻辑来确定要使用哪个集合并将其放入 adapterArray。如果您需要这两个集合,请在将其设置为源之前迭代并按照您想要的方式制作adapterArray。
标签: android arraylist android-arrayadapter