Android:在listview中动态更改文本颜色

时间:2013-10-18 14:30:10

标签: android listview colors textview

我在Android应用程序中有一个listview,其中包含用于布局的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的TextView中的文本显示为红色,但在某些情况下,我希望将文本颜色设置为绿色。

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

正如@megatron所说,你应该使用一个自定义适配器,它可以让你自由自在。如果你想以这种方式做,你可以看看Vogella关于ListView和Custom适配器的教程。

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