1

...通过使用游标从 sql 数据库中的三个不同列中选择单个(无限)行。第一列包含 id。第二列包含净重,第三列包含实际重量。db 中有更多列,但前面的列是唯一相关的列。

接下来我需要取这两个数字并做一些简单的算术运算......(简单,不是问题)然后......

如果该行包含的实际重量小于净重的 15%,则将此项目的 expandableListView 背景变为红色。如果不保持绿色或紫色或粉红色或其他任何东西!

这是我的规格:

链接到sql 数据库ExpandableListView的simpleCursorTreeAdapter 。

这是我发现的:

我已经阅读了几个不同的教程、androiddocs、q&a,它们都指向 getGroupView()。所有教程的问题在于:适配器是从BaseExpandableListAdapter扩展而来的。不幸的是,我曾多次走上这条路。我正在使用 sql lite 数据库。

但是,我注意到SimpleCursorTreeAdapter 扩展了 BaseExpandableAdapter。因此,应该有一种方法可以使这项工作。

问题:

我需要找到一种使用 getGroupView() 在各个职位之间循环的方法。与遍布网络的教程不同,我的数据来自数据库,我没有使用复选框。

我可以使用 groupView 成功地将所有项目变为绿色或红色,但是没有办法用一个 return 语句来做我需要的事情。!

有什么想法我应该看吗?我想推迟发布代码,直到我有兴趣为止。

4

2 回答 2

0

去这里:Android:在 ExpandableListViewActivity 的 Child 中访问 TextView并设置视图的颜色,因为它们是根据 sql 数据库中的数据从适配器获取的。

然后在您的适配器上调用 notifyDataSetChanged() 以强制再次获取视图,如果 sql db 已更改,它将显示它们的新颜色。

于 2012-09-11T23:33:06.797 回答
0

这是设置组指标的有效方法

<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>
于 2017-04-27T14:41:15.817 回答