2012-05-31 2 views
1

Мой listitem.xml:Как указать android: textColor на нажатом ListItem?

<?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> 

Итак, я хочу, чтобы указать TextColor моих TextViews по пункту прессованных. Я использую custom listview через baseadapter.

+0

возможно дубликат [Android TextView отключения изменения цвета] (HTTP: // stackoverflow.com/questions/7424946/android-textview-disabling-color-changing) – Ronnie

+0

@ userSeven7s no, vers verse: Я не создавал изменение цвета (у меня не было этого, благодаря Ole). –

ответ

2

Создать селектор для вашего цвета TextView текста.

Рез/цвет/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> 

Рез/макет/listitem.xml

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

Если вы хотите, чтобы применить к обеим TextViews, вы можете добавить его в @ стиле/w_w и удалите часть android: textColor из вашего TextView.

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

Нет, я не хочу применять его для обоих текстовых элементов. Значения по умолчанию (не нажатые/выбранные) отличаются. –

0

Вы можете проверить для просмотра списка onItemClickListner и в этом наборе для этого элемента myTextView.setTextColor(getResources().getColor(R.color.blue));

+0

Могу ли я попросить вас пример с onItemClickListener? –

+0

См. Этот учебник. и проверьте код 'lv.setOnItemClickListener' http://www.androidhive.info/2011/10/android-listview-tutorial/ – Wesley

0

Если активность продолжается 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); 
} 
Смежные вопросы