我在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中的颜色?
答案 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