Подтвердить что ты не робот

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

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

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-массивами

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

4b9b3361

Ответ 1

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

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

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);    
    }
}

Ответ 2

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