viernes, 18 de enero de 2013

Cambiar el fondo a los desplegables del AutoCompleteTextView

Un pequeño problema que ocurre con las versiones anteriores a 4 es que cuando creas un AutoCompleteTextView, el fondo del desplegable es en blanco y el texto de la lista es también es blanco. Entonces la solución sería poner en el MainActivity.java el método setDropDownBackgroundResource(Color), de esta forma podríamos poner un fondo diferente al blanco y así ya se vería el texto de la lista desplegable.




Sin este método se vería así:


 Con el método setDropDownBackgroundResource() se vería de la siguiente forma:



En caso de querer poner de fondo una imagen, habría que introducir un recurso drawable dentro del método setDropDownBackgroundResource.



Ejemplo:


8 comentarios:

  1. y no hay una manera de cambiar el colortext? lo buscaré-

    ResponderEliminar
  2. Otra solución sería usar en el ArrayAdapter, android.R.layout.simple_list_item_1 en vez de android.R.layout.simple_dropdown_item_1line

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Otra solución sería añadir en el control <AutoCompleteTextView del activity_main el siguiente item:

    android:popupBackground="@color/verde"

    ResponderEliminar
  5. Añado link de página de android con la documentación.

    http://developer.android.com/reference/android/widget/AutoCompleteTextView.html#attr_android:popupBackground

    ResponderEliminar
  6. Gracias por la ayuda! :D

    ¿Alguien sabe si se pueden poner imágenes dentro de un AutoCompleteTextView?

    ResponderEliminar
    Respuestas
    1. Hola fossie,
      en el método habría que asignarle un recurso drawable:

      comunidad.setDropDownBackgroundResource(R.drawable.imagen);

      En la entrada he incluido el ejemplo.

      Saludos :)

      Eliminar
    2. Muchas gracias Laura por contestar tan rápido y por añadir el ejemplo aunque no me expliqué bien, me referia a añadir una imagen en cada elemento que aparece en el AutoCompleteTextView.

      Eliminar