Cómo modificar el estilo de clic de ListView

Utilizo el siguiente código para modificar el estilo del clic del elemento ListView.
list_four_corner_selector.xml

<?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/list_four_corner_selected" 
    />
    <item
        android:drawable="@drawable/list_four_corner_unselect" 
    />
</selector>

list_four_corner_unselect.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient android:startColor="#FFFFFF"
        android:endColor="#FFFFFF"
        android:angle="270"/>
    <corners android:bottomLeftRadius="10dip"
        android:bottomRightRadius="10dip"
        android:topRightRadius="10dip"
        android:topLeftRadius="10dip" />
    <stroke
        android:width="1dp"
        android:color="#dddddd"
        android:dashWidth="10dp"
        android:dashGap="0dp" />
</shape> 

list_four_corner_selected.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient android:startColor="#B7D5F9"
        android:endColor="#B7D5F9"
        android:angle="270"/>
    <corners android:bottomLeftRadius="10dip"
        android:bottomRightRadius="10dip"
        android:topLeftRadius="10dip"
        android:topRightRadius="10dip" />
</shape> 

Y debajo del código en BaseAdapter:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewTag viewTag;
    if(convertView == null) {
        convertView = myInflater.inflate(R.layout.row_item, null);
        viewTag = new ViewTag((TextView)convertView.findViewById(R.id.row_title));
        convertView.setTag(viewTag);
    }
    else {
        viewTag = (ViewTag)convertView.getTag();
    }
    convertView.setBackgroundResource(R.drawable.list_four_corner_selector);
}

Pero mientras hago clic en el elemento, las cuatro esquinas del elemento mostrarán el color predeterminado.
Quiero dejar que el valor predeterminado se oculte.
¿Cómo puedo hacerlo?

preguntado el 24 de agosto de 12 a las 10:08

1 Respuestas

Intenta usar android:listSelector en el ListView.

Respondido 24 ago 12, 10:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.