Проверьте этот конструктор для SimpleAdapter:
http://bit.ly/99OFSo
По сути, вы создаете пользовательский макет для представления каждой строки. Присвойте идентификаторы элементам ImageView и TextView в этом макете. Вы создаете List<? extends Map<String, ?>>
объект для представления ваших данных. Каждый элемент в списке - это Map<String, [some object]>
, который представляет ключ и значение для каждого фрагмента данных, которые вы хотите отобразить. Третий аргумент конструктора - это идентификатор макета строки. Четвертый аргумент - это массив строк, представляющих ключи для каждого фрагмента данных в ранее созданной вами карте, а пятый аргумент - это массив int id элементов ImageView и TextView в макете (в соответствии с порядком массива строк в предыдущем аргументе).
У меня есть что-то вроде следующего:
ListView someListView= (ListView)findViewById(R.id.someListView);
SimpleAdapter adapter = new SimpleAdapter(
this,
someHelperMethodThatReturnsMyList(),
R.layout.custom_row,
new String[] { "field1", "field2", "field3" },
new int[] { R.id.txtField1, R.id.txtField2, R.id.imgField3}
);
someListView.setAdapter(adapter);