0

我在 Android 应用程序中有一个列表视图,其中包含用于布局的 row.xml 文件:

    String[] from = { "Field_1", "Field_2", "Field_3" };
    int[] to = { R.id.Field_1, R.id.Field_2, R.id.Field_3};

    SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), aList, R.layout.row, from, to);
    final ListView listView = ( ListView ) findViewById(R.id.values);
    listView.setAdapter(adapter);

在 row.xml 中,Field_3 是:

<TextView
    android:id="@+id/Field_3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|right"
    android:textColor="@color/red"
    android:layout_marginRight="150dp"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="25dp"
    android:textStyle="bold"
    android:textSize="14sp" >
</TextView> 

基本上,文本视图中 ID Field_3 的文本显示为红色,但在某些情况下,我希望将文本颜色设为绿色。

我尝试使用 HTML 格式,但它不起作用。

有没有办法动态更改数组或 simpleAdapter 中的颜色?

4

2 回答 2

1

您可以编写自己的适配器,它的行为如您所愿。只需覆盖getView 方法并更改颜色 像这样: view = layoutInflater.inflate(R.layout.item, null); view.findViewById(R.id.Field_3)在这里你可以做任何事情

于 2013-10-18T15:13:01.583 回答
0

正如@megatron 所回答的那样,您应该使用一个自定义适配器,它给您很大的自由度。如果你想这样做,你可以看看 Vogella 的关于 ListView 和自定义适配器的教程。

http://www.vogella.com/articles/AndroidListView/article.html#adapterown

于 2013-10-18T15:32:57.727 回答