Изменить цвет элемента ExpandableListView - PullRequest
1 голос
/ 11 июля 2011

... с помощью курсора для выбора отдельных (бесконечных) строк из трех разных столбцов в базе данных sql. Первый столбец содержит идентификатор. Второй столбец содержит вес нетто, а третий столбец содержит фактический вес. В БД больше столбцов, но только предыдущие релевантные столбцы.

Далее мне нужно взять два числа и сделать простую арифметику ... (Легко, не проблема), затем ....

Если строка содержит фактический вес, который составляет менее 15 процентов от веса нетто, включите фон для элемента expandableListView красного цвета. Если не останься зеленым, или пурпурным, или розовым, или как угодно!

ЗДЕСЬ МОИ ХАРАКТЕРИСТИКИ:

simpleCursorTreeAdapter , который связан с базой данных sql и ExpandableListView.

ЗДЕСЬ ЧТО Я НАЙДЁЛ:

Я прочитал несколько различных руководств, androiddocs, вопросов и ответов, и все они указывают на getGroupView (). Проблема со всеми учебниками заключается в следующем: адаптер расширен от BaseExpandableListAdapter . К сожалению, я несколько раз был на этом пути. Я работаю с базой данных SQL Lite.

Однако я заметил, что SimpleCursorTreeAdapter расширяет BaseExpandableAdapter . Итак, должен быть способ заставить эту работу.

ПРОБЛЕМА:

Мне нужно найти способ циклически проходить по отдельным позициям, используя getGroupView (). В отличие от учебника , который распространяется по всей сети, мои данные поступают из БД, и я не использую флажки.

Я могу использовать groupView, чтобы успешно перевести все элементы в зеленый или красный цвет, но я не могу сделать то, что мне нужно, с помощью одного оператора return.!

Есть мысли, куда мне смотреть? Я хочу отложить публикацию кода, пока меня не заинтересует.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2017

это эффективный способ установки группового индикатора

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_empty="true" >
<layer-list>
    <item
        android:left="0dp"
        android:right="3dp"
        android:top="20dp"
        android:bottom="20dp"
        android:drawable="@drawable/ic_arrow_down">
    </item>
</layer-list>

<item
android:state_expanded="false" >
<layer-list>
    <item
        android:left="0dp"
        android:right="3dp"
        android:top="20dp"
        android:bottom="20dp"
        android:drawable="@drawable/ic_arrow_up">
    </item>
</layer-list>
</item>
0 голосов
/ 12 сентября 2012

иди сюда: Android: Получите доступ к TextView внутри Child of ExpandableListViewActivity и установите цвет представлений при их получении из адаптера на основе данных в вашей базе данных sql.вызовите notifyDataSetChanged () на вашем адаптере, чтобы заставить выборки быть извлеченными снова, который покажет их новые цвета, если sql db изменился.

...