如何在按下的ListItem上指定android:textColor?

时间:2012-05-31 15:30:34

标签: android android-layout

我的listitem.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" style="@style/f_w" android:layout_height="60sp" android:padding="0sp">
<TextView android:id="@+id/con_name"
    android:textSize="16sp"
    style="@style/w_w" />
<TextView android:id="@+id/con_time"
    android:textSize="13sp" 
    android:textColor="#565"
    style="@style/w_w" />
</RelativeLayout>

所以,我想在按下的项目上指定textview的textColor。我通过baseadapter使用自定义列表视图。

3 个答案:

答案 0 :(得分:2)

为TextView文本颜色创建一个选择器。

RES /颜色/ list_item_text_color_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:state_enabled="false" android:color="@color/disabled_color"/>
    <item android:state_focused="true" android:state_pressed="false" android:color="@color/focused_color" />
    <item android:state_pressed="true" android:color="@color/pressed_color" />
    <item android:color="@color/normal_color" />
</selector>

RES /布局/ listitem.xml

<TextView android:id="@+id/con_name"
    android:textSize="16sp"
    android:textColor="@color/list_item_text_color_selector"
    style="@style/w_w" />

如果您希望将它应用于两个TextView,可以将它添加到@ style / w_w并从TextView中删除android:textColor部分。

<style name="w_w">
    ...
    <item name="android:textColor">@color/list_item_text_color_selector</item>
    ...
</style>

答案 1 :(得分:0)

您可以检查onItemClickListener上的列表视图,并为该项设置myTextView.setTextColor(getResources().getColor(R.color.blue));

答案 2 :(得分:0)

如果您的Activity扩展了ListActivity,您可以更改listitem.xml中任何元素的颜色,只是覆盖:

@Override  
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    TextView tv = (TextView)  v.findViewById(R.id.con_name);
    tv.setTextColor(R.color.red);
}