В зависимости от того, правильно ли я интерпретировал вашу проблему, это можно сделать с помощью адаптера:
Вы можете расширить BaseAdaptor, переопределив getView (), и заставить его возвращать некоторую ViewGroup, содержащую виджеты, представляющие данные из разных списков.
Создание подклассов выбранной ViewGroup для создания составного представления, которое легче перерабатывать:
public class DoubleText extends LinearLayout {
TextView t1, t2;
public DoubleText(Context c) {
super(c);
t1 = new TextView(c);
t2 = new TextView(c);
this.addView(t1, 0);
this.addView(t2, 1);
}
public void setText(String s1, String s2) {
t1.setText(s1);
t2.setText(s2);
}
}
Создание подкласса BaseAdapter, однако отображается не все необходимое, есть еще
но это должно быть легче понять, как это , где большие различия
по сравнению с другими примерами использования адаптеров:
public class DoubleAdaptor extends BaseAdaptor {
List<String> lista, listb; // <- these are your paralell arrays, they and the
Context c; // context need to be initialized by some method
@Override
public View getView(int position, View convertView, ViewGroup parent) {
DoubleText recycled = (DoubleText) convertView;
if (recycled == null) {
recycled = new Double(context);
recycled.setText(lista.get(position), listb.get(position));
return recycled;
}
}
Кроме того, вам не обязательно иметь одинаковый тип представления для всех строк, то есть переопределять
getViewTypeCount (), чтобы дать Android верхний предел количества различных представлений
типы для использования и getItemViewType (int position), чтобы сообщить Android, какой тип представления
переработать для этой конкретной строки.
Редактировать: Я бы порекомендовал проверить документы разработчика Android на Adapter (интерфейс) и BaseAdapter (абстрактный класс) и ListAdapter (интерфейс), также я забыл вам сказать, что ListView имеет setAdapter (), который может быть интерес.