ListSelector en ListView no funciona

Tengo mi listselector personalizado como este:

<?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/bg_list_hover"></item> <item android:state_focused="true" android:drawable="@drawable/bg_list"></item> </selector> 

y mi lista:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/bg_dasar" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="StoreCategory" android:textSize="15sp" android:paddingLeft="10dip" android:paddingTop="10dip" android:paddingRight="10dip" android:textColor="@color/textcolor"/> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dip" android:listSelector="@drawable/listselector"> </ListView> 

mi problema es, cuando no haga clic en listview, elemento de lista de vista no utilice fondo de estado enfocado ( @drawable/bg_list ) …

cualquiera puede ayudarme por favor ???

Para los que todavía lo necesitan: La clave es establecer el listSelector como fondo para el elemento de la lista!

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#819FF7" android:orientation="vertical" > <ListView android:id="@+id/mainList" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cacheColorHint="#819FF7" /> </LinearLayout> 

list_item.xml

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/lineItem" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/list_selector"> <ImageView android:id="@+id/imageView" android:layout_width="96dp" android:layout_height="64dp" android:layout_centerVertical="true" android:layout_alignParentLeft="true" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:layout_marginBottom="10dp" /> <TextView android:id="@+id/textView" android:layout_toRightOf="@+id/imageView" android:layout_height="wrap_content" android:layout_marginLeft="10dip" android:layout_centerVertical="true" android:textSize="18sp" android:textColor="#ff000000" android:layout_width="wrap_content" /> <Button android:id="@+id/button" android:gravity="center" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="10dp" android:layout_alignParentRight="true" android:focusable="false" android:text="Delete" /> </RelativeLayout> 

He resuelto mi problema, por leer alguna referencia .. mi listselector debe ser como esto:

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

mi esquema de vista de lista:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@drawable/bg_dasar" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="StoreCategory" android:textSize="15sp" android:paddingLeft="10dip" android:paddingTop="10dip" android:paddingRight="10dip" android:textColor="@color/textcolor"/> <ListView android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dip" **android:listSelector="@android:color/transparent"**> </ListView> </LinearLayout> 

y mi también agregando mi selector de la lista en mi fondo del artículo de la lista:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="55dip" android:orientation="horizontal" android:padding="15dip" android:gravity="center_vertical" **android:background="@drawable/listselector"**> <ImageView android:id="@+id/imageViewlogo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dip" /> <TextView android:id="@+id/textViewcategory" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:textColor="@color/textcolor" android:textSize="15sp"/> </LinearLayout> 

gracias por Jay y danwilkie por responder mi pregunta .. :))

¿Has intentado llamar a "requestFocus ()" en el listView en tu código después de configurar android: focusable = "true" en el xml? Desde la vista Documentos:

"Llamar a esto para tratar de dar enfoque a una vista específica oa uno de sus descendientes.Una vista realmente no tomará el foco si no se puede enfocar (isFocusable () devuelve false), o si es focusable y no se puede enfocar en touch mode (isFocusableInTouchMode ()) mientras el dispositivo está en modo touch.Consulte también focusSearch (int), que es lo que usted llama para decir que tiene el enfoque, y desea que su padre para buscar el siguiente.Esto es equivalente a calling requestFocus (int, Rect) con argumentos FOCUS_DOWN y null. "

Parece que su selector xml en este momento está diciendo usar bg_list_hover cuando hace clic en un elemento, y bg_list cuando se enfoca en un elemento (usando una trackball, por ejemplo).

Si desea utilizar un drawable personalizado en el caso predeterminado cuando el elemento no se hace clic ni se enfoca, debe agregar una entrada para eso:

Yo usaría algo como esto:

 <?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/bg_list_pressed"></item> <item android:state_focused="true" android:drawable="@drawable/bg_list_focused"></item> <item android:drawable="@drawable/bg_list"></item> </selector> 
  • ¿Ocultar la vista de pie en ListView?
  • Estrategia asíncrona de carga de imágenes de ListView
  • ListView No puedo hacer referencia en R.id.list?
  • State_activated en pre Honeycomb Devices
  • Averigüe si ListView se desplaza hacia abajo?
  • Colores de fondo personalizados de ListView
  • Android: setselector color para listview no funciona
  • ¿Hay una manera de desactivar la animación de Android ListView?
  • ¿Cómo obtengo el ID de fila de la fila de un ListView, que contiene un elemento que se puede hacer clic?
  • ¿Cómo hacer un ListView con elementos arrastrables?
  • Cómo agregar un elemento secundario en Android ListView?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.