Как передать несколько значений массива в классе пользовательского адаптера для представления пользовательского списка?

У меня есть вид списка с иконкой изображения слева и тремя текстовыми представлениями справа в одной строке. Я создал макет, но при создании класса адаптера я столкнулся с некоторыми проблемами. Вот код:

import android.app.Activity; import android.widget.ArrayAdapter; public class CustomList extends ArrayAdapter<String>{ private final Activity context; private final String[][] listRow; private final Integer[] imageId; public CustomList(Activity context, String[][] listRow, Integer[] imageId){ super(context, R.layout.rowlayout, listRow); } } 

Сначала я создал три массива 1D для трех текстовых просмотров, но в конструкторе я не смог их передать.

Поэтому мне пришлось создать 2D-массив, где каждая строка в таблице будет представлять информацию об одном элементе списка.

Но я не могу этого сделать. Я получаю сообщение об ошибке:

Невозможно разрешить метод super(android.app.Activity, int, java.lang.String[][]) с 2D-массивами

Как решить эту проблему?

Solutions Collecting From Web of "Как передать несколько значений массива в классе пользовательского адаптера для представления пользовательского списка?"

Пробыв в течение долгого времени, я нашел решение. Я создал отдельный класс для хранения значений данных для каждой отдельной строки и создал массив одинаковых объектов .

Вот пример кода:

 import android.app.Activity; import android.widget.ArrayAdapter; class ListItem { public String textview1; public String textview2; public String textview3; public int imageId; public ListItem(String t1, String t2, String t3, int imageId) { this.textview1 = t1; this.textview2 = t2; this.textview3 = t3; this.imageId = imageId; } } public class CustomList extends ArrayAdapter<Object> { private Activity context; private ListItem listItem[]; public CustomList(Activity context, ListItem li[]) { super(context, R.layout.rowlayout, li); } } 

Создайте класс модели (отдельно), который содержит все три поля, которые требуются. Затем создайте arraylist в своей деятельности и добавьте к нему элементы. Передайте этот arraylist адаптеру, который он работает.