Android: множественный значок в ListView - PullRequest
1 голос
/ 10 мая 2010

В моем представлении списка я хочу отобразить несколько значков. Значок 1 для строки списка 1, Значок 2 для строки списка 2, Значок 1 для строки списка 3.

Ответы [ 2 ]

1 голос
/ 10 мая 2010

Переопределите getView в своем ListAdapter, и тогда вы сможете предоставить любой макет для каждой строки.

http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

0 голосов
/ 27 марта 2011

Вы хотите использовать разные иконки в каждой строке правильно? Ну, вы можете использовать массив идентификаторов ресурсов всех ваших изображений и расположить их по порядку для ваших элементов строки. Типичный способ, которым люди делают это, это жестко закодировать список и указать R.drawable.iconName, который находится в ваших ресурсах. как:

int[] mapPic = {
      R.drawable.icon1,R.drawable.icon2, 
      R.drawable.icon3,R.drawable.icon4};

Для меня это грубое решение, жесткое кодирование - это большое нет-нет. Более элегантный способ - поместить массив в ваш xml-файл, такой как string.xml или тот, который вы создаете для всех ваших массивов. В ваш string.xml вставьте:

<array name="arrayIcon">
    <item>@drawable/icon1</item> 
    <item>@drawable/icon2</item> 
    <item>@drawable/icon3</item> 
    <item>@drawable/icon4</item> 
</array>

Затем в своем коде при первом создании представления перед настройкой содержимого добавьте:

TypedArray mapPic = getResources().obtainTypedArray(R.array.arrayIcon);

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

Drawable drawable = typeArray.getDrawable(RowID);

В моем коде, чтобы установить его в моем представлении, мне пришлось захватить ViewWrapper и использовать getIcon () для его установки.

ViewWrapper wrapper.getIcon().setImageDrawable(drawable);

И именно так вы добавляете нужные ресурсы изображений в свой список, используя массив в ресурсах xml. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...