У меня есть рабочий до Android 4 виджет, который показывает список элементов.У каждого элемента есть цветовая вставка, которая показывает один из трех цветов и текст, цвет и стиль которого определяются атрибутами данных приложения.Список реализован как вертикальный LinearLayout, но я хочу преобразовать его в ListView, чтобы сделать виджет прокручиваемым в ICS.Однако я не мог понять, как сопоставить базовые свойства данных элемента с удаленным представлением элемента при использовании ListView.
(приведенный ниже код упрощен).
Класс данных элемента равен
class ItemData {
String text;
int textColor;
int patchColor;
}
Верхний макет виджета:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget_top_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/widget_item_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
// Items are added here at runtime by my widget provider class.
</LinearLayout>
</FrameLayout>
И каждый вид элемента использует этот макет
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<FrameLayout
android:id="@+id/widget_item_color"
// background color is set at runtime by the widget provider based
// on patchColor member of the item data.
android:layout_width="6dip"
android:layout_height="fill_parent"
>
</FrameLayout>
<TextView
android:id="@+id/widget_item_text_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
// Actual color is set at runtime by the widget provider based on
// item data.
android:textColor="@color/color_place_holder"
android:background="@android:color/transparent"
// May be set at runtime to false, based on user's prefernces.
android:singleLine="true"
android:scrollHorizontally="false"
android:ellipsize="end"
>
</TextView>
</LinearLayout>
Мой вопрос: если я изменю LinearLayout в верхнеммакет в ListView, где я могу подключить логику для сопоставления данных элемента со свойствами представления элемента?Любой пример кода, который делает подобное сопоставление?