2011-08-16 14 views
11

Mam listview, który pokazywał żółtą kartkę na przedmiotach, kiedy ich dotykałem. Wszystko robiłem inaczej to zmienić obraz tła w tym listview xml, a teraz już nie pokaże mi yellowtintWidok listy Android nie podświetla już zaznaczenia onclick

Oto kod

lista widok xml, to tylko TextView z tłem zdjęcie:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:textSize="24sp" 
    android:textColor="#000000" 
    android:background="@drawable/bglistitem" 
    android:gravity="center_vertical|center_horizontal"> 
</TextView> 

miejsce w innym układzie, gdzie jest nazywany

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:textSize="24sp" 
    android:textColor="#000000" 
    android:background="@drawable/bglistitem" 
    android:gravity="center_vertical|center_horizontal"> 
</TextView> 

i oto kod:

lv.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {} 
}); 

Jak widać powyżej, nigdy nie robiłem niczego, co zmieniłoby domyślne zachowanie zaznaczania zaznaczeń, dlaczego teraz byłoby inaczej, może coś, czego widzę, czego nie widzę?

Odpowiedz

20

Po dodaniu nowego tła do listy ListView zastąpiłeś domyślne tło androida, które najprawdopodobniej używało selektora do odbarwiania ListItems w zależności od ich stanu.

Spróbuj użyć selektora niestandardową

Utwórz plik XML, mycustombackground.xml i dodać do niego:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
     android:drawable="@drawable/item_pressed" /> 
    <item android:state_focused="true" 
     android:drawable="@drawable/item_focused" /> 
    <item android:drawable="@drawable/item_normal" /> 
</selector> 

Wymień @drawables z własnych w stosunku do państwa. Następnie ustaw tło listy do pliku xml.

android:background="@drawable/mycustombackground" 

Możesz zajrzeć do kodu XML, aby utworzyć żółty kolor, lub po prostu stworzyć własny obraz.

+0

Zorientowałem się, dzięki twojemu wglądowi, pomogłem mi zawęzić możliwości. Okazuje się, że jeśli na obrazie jest jakaś alfa, wówczas pojawi się żółte podświetlenie. Jeśli masz nieprzezroczysty obraz, nie podświetli się – CQM