0

我如何使用一个 arrayAdapter 处理 4 个不同的列表视图。我有 4 个不同的 ArrayLists 传递给 arrayAdapter。而不是复制和粘贴来制作 4 个相同的 ArrayAdapter 类,除了特定于输入适配器的 arrayList 的几行。为 4 个单独的 arrayLists 使用相同的 arrayAdapter 类怎么样?

问题是我需要 ArrayAdapter 知道输入了 4 个 arrayList 中的哪一个,因为我在 Adapter 类方法中有一个 switch 语句。

在这种情况下,我应该向这个 ArrayAdapter 类的构造函数添加一个额外的参数变量,作为输入四个数组列表中的哪一个的标识符吗?像一个int?

因为我的适配器类扩展了 ArrayAdapter 类我该怎么做?我会在构造函数参数中再添加一个变量位置,然后像这样让超级调用与以前一样吗?

super(context, textViewResourceId, objects);

你会如何处理这个问题?

  // array adapter where you enter the array
        SelectorListAdapter adapter = new SelectorListAdapter(activity, R.layout.row_layout, smallTank2listInfo1Array);
        SelectorListAdapter adapter2 = new SelectorListAdapter(activity, R.layout.row_layout, smallTank2listInfo2Array);
        SelectorListAdapter adapter3 = new SelectorListAdapter(activity, R.layout.row_layout, smallTank2listInfo3Array);
        SelectorListAdapter adapter4 = new SelectorListAdapter(activity, R.layout.row_layout, smallTank2listInfo4Array);

             // set array adapter to listview
            listViewOne.setAdapter(adapter);
            listViewTwo.setAdapter(adapter2);
            listViewThree.setAdapter(adapter3);
            listViewFour.setAdapter(adapter4);



  public class SelectorListAdapter extends ArrayAdapter<CheckBoxListInfo>{
        ArrayList<CheckBoxListInfo> objects;
        Context context;
        int textViewResourceId;
        private String tempLabel;
        private boolean isChecked;

        public SelectorListAdapter(Context context, int textViewResourceId,
            ArrayList<CheckBoxListInfo> objects) {
            super(context, textViewResourceId, objects);
            this.context = context;
            this.textViewResourceId = textViewResourceId;
            this.objects = objects;

        }
4

1 回答 1

0

其实你自己已经回答了一切

将同一arrayAdapter类用于 4 个单独的类怎么样arrayLists?--是的,你可以使用。

要识别不同arrayAdapter的 s,您可以将变量传递给存储在局部变量中的构造函数。根据此变量的值,您可以决定要做什么。

在调用超类的构造函数时留下这个变量并调用super()

于 2013-07-11T12:19:17.020 回答