android - 以编程方式更改listview背景颜色

时间:2013-04-11 21:43:54

标签: java android

我创建了一个自定义列表视图,并为其创建了一个适配器。我希望能够在我的自定义列表视图中以编程方式更改不同视图的不同样式方面。我的自定义列表视图是一个RelativeLayout,里面有TextViews。我试了以下没有运气。没有错误或任何东西。

View myView = adapter.getView(position, null, null);

myView.setBackgroundColor(Color.parseColor("#93E6CD"));       
myView.findViewById(R.id.layout).setBackgroundColor(Color.parseColor("#93E6CD"));
adapter.notifyDataSetChanged();

这是我的自定义列表视图

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="5dip"
    android:id="@+id/layout">


    <!-- Title-->
    <TextView
        android:id="@+id/primaryTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Loading..."
        android:textColor="#040404"
        android:typeface="sans"
        android:textSize="18dip"
        android:textStyle="bold"/>

    <!-- Secondary title -->
    <TextView
        android:id="@+id/secondaryTitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/primaryTitle"
        android:textColor="#343434"
        android:textSize="12dip"
        android:layout_marginTop="1dip"
        android:text="" />

    <!-- Rightend Data -->
    <TextView
        android:id="@+id/rightData"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@id/primaryTitle"
        android:gravity="right"
        android:text=""
        android:layout_marginRight="5dip"
        android:textSize="12dip"
        android:textColor="#B53021"
        android:textStyle="bold"/>

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

在您提供更多信息之前,我们无法继续。

我怀疑你没有正确设置ListView。您是否真的试图显示类似项目的列表,例如数据库中的行?如果是这样,我希望看到ListView对象的定义,无论是代码还是XML。我也想看看它的定义 适配器。看起来你已经为ListView定义了ListAdapter,但我也想知道支持ListAdapter的是什么。

该行

myView.findViewById(R.id.layout).setBackgroundColor()

看起来很可疑。您似乎正在寻找myView的子视图,但我没有看到您定义此子视图的位置。

通常,您将ListView定义为整个UI布局文件的一部分,单独的项目布局定义ListView中的一个项目,然后将数据源调整为ListView。