Curso de Android con Java: Control Spinner con items compuestos por una imagen y un TextView

diego moisset de espanes
22 Feb 202112:16

Summary

TLDREn este video se aborda cómo crear un Spinner en Android Studio con una estructura más compleja que incluya imágenes y textos. Se explica que para lograr esto, es necesario crear un adaptador personalizado que permita mostrar tanto imágenes como nombres de países al lado de una bandera. El proceso implica definir un vector para los nombres de países y otro para las referencias de las imágenes, crear un diseño personalizado para los elementos del Spinner y luego programar un adaptador que sobrescriba métodos clave para inflar la vista y mostrar el contenido deseado. Finalmente, se agrega un botón para recuperar el país seleccionado, mostrando cómo se puede trabajar con controles visuales complejos en Android.

Takeaways

  • 📱 El script habla sobre cómo crear un Spinner en Android Studio que muestre imágenes y nombres de países junto con sus banderas.
  • 🛠 Se menciona que para lograr esta funcionalidad se necesita crear un adaptador personalizado para el Spinner.
  • 📸 Es necesario tener una colección de imágenes de banderas y nombres de países que se utilizarán en el Spinner.
  • 🔗 Se debe enlazar el Spinner con un adaptador personalizado creado para mostrar tanto imágenes como texto.
  • 📝 Se sugiere crear dos vectores para almacenar los nombres de los países y las referencias a las imágenes de las banderas.
  • 📑 Se describe el proceso de crear un layout XML personalizado para definir cómo se verán los elementos individuales dentro del Spinner.
  • 🖼️ Se incluye un ImageView para mostrar la imagen de la bandera y un TextView para mostrar el nombre del país.
  • 🔧 Se menciona la necesidad de inflar el layout personalizado y asignar los elementos visuales correspondientes en el adaptador.
  • 🔄 Se debe sobreescribir varios métodos en el adaptador personalizado, incluyendo `getCount`, `getItem`, y `getView`.
  • 🔲 Se destaca la importancia de asignar el adaptador personalizado al Spinner para que muestre los elementos correctamente.
  • 🔗 Al final, se menciona la implementación de un botón para recuperar el país seleccionado del Spinner.

Q & A

  • ¿Qué se discute en el control de espinar en el video anterior?

    -Se discute la adquisición de una lista de strings y cómo se puede mostrar en un spinner.

  • ¿Qué es lo que se quiere lograr con el spinner más complejo en el video?

    -Se quiere crear un spinner que muestre imágenes de banderas al lado del nombre del país correspondiente.

  • ¿Cómo facilitan Android Studio y la librería de propiedad de Android la creación de estos spinners?

    -Proporcionan herramientas y clases que permiten la creación de elementos de interfaz de usuario personalizados, como un spinner con imágenes y texto.

  • ¿Qué se hace para eliminar el texto predeterminado en la interfaz del spinner?

    -Se indica en el código que se desea seleccionar un país y se configura el spinner para que no muestre texto por defecto.

  • ¿Cómo se organizan las imágenes de las banderas para su uso en el spinner?

    -Se crean carpetas en los recursos para almacenar las imágenes de las banderas y se hacen referencias a estas imágenes en el código.

  • ¿Qué clase se crea en Android para hacer referencia a las imágenes de las banderas?

    -Se crea una subclase de la clase R que hace referencia a cada una de las imágenes de las banderas.

  • ¿Cómo se configura el adaptador personalizado para el spinner?

    -Se crea una clase que extiende ArrayAdapter y se sobrescriben métodos para definir la estructura de cada ítem, incluyendo una imagen y un texto.

  • ¿Qué es lo que se hace para definir la apariencia de cada ítem en el spinner?

    -Se crea un layout XML personalizado que define cómo se verán los ítems del spinner, mostrando una imagen y el nombre del país.

  • ¿Cómo se obtiene la referencia de la vista de cada ítem en el adaptador personalizado?

    -Se utiliza el método `getView()` y se infla el layout personalizado, lo que permite obtener una referencia a la vista y a los elementos visuales dentro de ella.

  • ¿Qué método se utiliza para recuperar el país seleccionado en el spinner?

    -Se implementa un método que se ejecuta cuando se selecciona un ítem del spinner, el cual devuelve el texto del país seleccionado.

  • ¿Cómo se enlaza el spinner con el adaptador personalizado?

    -Se asigna el adaptador personalizado a través del spinner utilizando el método `setAdapter()`.

  • ¿Qué se debe hacer para que el spinner muestre los elementos una vez creado el adaptador?

    -Se debe enlazar el spinner con el adaptador personalizado y luego se cargan los elementos en el spinner.

Outlines

00:00

😀 Creación de un Spinner con Imágenes y Nombres de País

Se describe el proceso de creación de un spinner en Android Studio que muestra imágenes y nombres de países. Se menciona que el spinner se ha diseñado para ser más complejo, permitiendo mostrar una bandera y el nombre del país al lado de cada ítem. El video muestra cómo se implementa este spinner utilizando una librería y se detalla cómo se han preparado las imágenes de las banderas y cómo se almacenan los nombres de los países y las referencias a las imágenes en estructuras de datos. Se indica que se ha creado una clase r para manejar las referencias de las imágenes y se ha desarrollado un adaptador personalizado para el spinner.

05:04

😉 Diseño y Configuración del Spinner con Elementos Gráficos

Se aborda el diseño y la configuración del spinner, incluyendo la personalización de los elementos gráficos que componen cada ítem del spinner. Se describe cómo se ha ajustado el tamaño de la fuente para mejorar la legibilidad y cómo se ha estructurado el layout para incluir una imagen y un texto. Se detalla la creación de un adaptador personalizado para el spinner, llamado 'PaísesAdapter', y se explica cómo se han sobrescrito métodos para definir la cantidad de elementos, recuperar el nombre del país y generar la vista de cada ítem. Se destaca la necesidad de adaptar el diseño para que se muestren tanto la imagen como el nombre del país en cada elemento del spinner.

10:04

🎯 Selección y Recuperación de la Opción Seleccionada en el Spinner

Se explica cómo se implementa la funcionalidad para seleccionar y recuperar la opción elegida en el spinner. Se menciona la necesidad de vincular el spinner con el adaptador creado y se describe el proceso para que el spinner muestre los elementos correspondientes. Se destaca la importancia de seguir una 'receta' o un conjunto de pasos específicos al utilizar librerías o bibliotecas para implementar componentes visuales complejos. Se incluye una descripción de cómo se puede recuperar el país seleccionado mediante un botón y se señala que el spinner puede ser personalizado con varios elementos internos para manejar estructuras más complejas.

Mindmap

Keywords

💡Spinner

Spinner es un control de selección en Android que permite al usuario elegir entre varias opciones en una lista desplegable. En el video, se utiliza para mostrar una lista de banderas de países junto con sus nombres, lo que permite al usuario seleccionar una opción específica.

💡Android Studio

Android Studio es el entorno de desarrollo integrado (IDE) oficial para el desarrollo de aplicaciones Android. Se menciona en el video como la herramienta que se utiliza para crear y diseñar la interfaz de usuario de la aplicación que se está explicando.

💡Librería

La librería en el contexto de programación de Android se refiere a un conjunto de clases y métodos predefinidos que facilitan la tarea de desarrollo de aplicaciones. En el video, se habla de cómo la librería de Android facilita la creación de elementos de interfaz de usuario complejos como el Spinner personalizado.

💡Adaptador (Adapter)

Un adaptador en Android es una clase que permite 'adaptar' los datos de un conjunto de datos para su uso en una vista específica, como un Spinner. En el video, se crea un adaptador personalizado para mostrar imágenes y nombres de países en el Spinner.

💡Recursos (Resources)

Los recursos en Android son elementos como imágenes, layouts, y otros archivos de datos que se utilizan en la aplicación. En el video, se habla de copiar imágenes de banderas de países y utilizarlas como recursos para mostrar en el Spinner.

💡Vector

Un vector en programación es una estructura de datos que almacena una colección de elementos. En el video, se utiliza un vector para almacenar los nombres de los países y las referencias a las imágenes de las banderas.

💡Layout

Un layout en Android define la organización y la presentación de los elementos de la interfaz de usuario. Se menciona en el video al crear un diseño personalizado para los elementos del Spinner que incluirá una imagen y un texto.

💡ImageView

ImageView es una vista de Android que se utiliza para mostrar imágenes. En el contexto del video, se utiliza un ImageView para mostrar las banderas de los países en cada elemento del Spinner.

💡TextView

TextView es una vista de Android que se utiliza para mostrar texto. En el video, se utiliza un TextView para mostrar el nombre del país junto a la bandera en cada elemento del Spinner.

💡Inflación de Layout (Layout Inflation)

La inflación de layout es el proceso de convertir un archivo de diseño XML en una vista de Android que puede ser mostrada en la pantalla. En el video, se utiliza la inflación de layout para crear las vistas personalizadas de los elementos del Spinner.

💡Recuperación de Datos (Data Retrieval)

La recuperación de datos es el proceso de obtener información de una fuente. En el video, se habla de cómo recuperar el nombre del país seleccionado por el usuario desde el Spinner una vez que se realiza una selección.

Highlights

Se continúa con el control de Spinner y se presenta cómo Android Studio y la librería de propiedades de Android facilitan la creación de Spinners más complejos.

Se muestra un ejemplo de un Spinner que muestra imágenes de banderas y nombres de países, en lugar de una lista de strings.

Se menciona la necesidad de crear un proyecto para gestionar la selección de un país a través de un Spinner.

Se describe el proceso de eliminación del texto y selección del paquete de origen en la interfaz.

Se indica cómo enlazar el Spinner con los elementos de la interfaz y cómo gestionar los elementos complejos.

Se sugiere la creación de una carpeta para almacenar las imágenes de las banderas en los recursos de la aplicación.

Se explica cómo definir las estructuras de datos para guardar los nombres de los países y las referencias a las imágenes.

Se menciona la creación de una clase R para hacer referencia a las imágenes de las banderas.

Se detalla el proceso de creación de un adaptador propio para el Spinner, indicando la estructura de cada ítem.

Se describe cómo crear un layout propio para los ítems del Spinner, incluyendo una ImageView y un TextView.

Se explica cómo crear una clase de adaptador personalizado para generar la vista de cada ítem del Spinner.

Se menciona la necesidad de sobreescribir métodos en la clase del adaptador para gestionar la cantidad de elementos y su representación.

Se detalla cómo inflar el layout para cada ítem del Spinner y cómo obtener referencias a los elementos visuales.

Se indica cómo mostrar la imagen de la bandera y el nombre del país en cada ítem del Spinner.

Se sugiere la necesidad de enlazar el adaptador con el Spinner para que muestre los elementos correctamente.

Se describe cómo crear un botón para recuperar el país seleccionado del Spinner.

Se menciona cómo gestionar la selección de un ítem en el Spinner y cómo recuperar el texto del país seleccionado.

Se concluye con una revisión de los pasos necesarios para crear un Spinner con elementos más complejos y su adaptador personalizado.

Transcripts

play00:00

bueno seguimos con el control de espinar

play00:02

adquirimos en el vídeo anterior que esta

play00:04

bajamos una lista d

play00:06

string ahora vamos a tratar plantear una

play00:08

espinilla bastante más complejo y vamos

play00:11

a ver cómo android estudio y la librería

play00:14

propiedad android nos facilita la

play00:17

creación de estos spinner

play00:19

el problema es que era una espina

play00:21

demuestre cada ítem una imagen que va a

play00:24

hacer una bandera y al lado del nombre

play00:26

del país de dicha bandera yo lo he

play00:29

dispuesto acá en emulador funcionando y

play00:33

como vemos este pinar y lo abro se

play00:35

despliega en vez de solamente una lista

play00:38

de string que serían los serbios

play00:41

vamos a mostrar imágenes y técnicos y la

play00:45

cantidad de elementos que sea y cuando

play00:47

seleccionamos eventualmente yo puedo

play00:49

recuperar en este caso criterios el

play00:52

texto del país seleccionado bueno vamos

play00:57

a ver los pasos para poder crear esta

play00:59

aplicación vamos a hacer el proyecto 12

play01:03

el dhiac tilke

play01:13

bueno lo primero que vamos a hacer

play01:16

vamos a eliminar el texto y según la

play01:21

interfaz vamos a decir seleccione el

play01:23

pack de origen interview

play01:26

en lanzamos

play01:36

vamos a disponer el espinar

play01:39

vamos a buscar encontrar primero todos

play01:43

espinas

play01:45

vamos a enlazarlo

play01:49

esta persona de flores de los cons train

play01:51

pero ahora empieza digamos los complejos

play01:55

este es el espinar vamos a adquirir como

play01:59

vamos a mostrar imágenes

play02:01

vamos a mostrar imágenes lo primero que

play02:04

vamos a hacer nuestra carpeta face the

play02:06

head shows recursos en la capital de la

play02:08

web le vamos a copiar

play02:13

de estas imágenes tengo el escritorio

play02:20

copiar

play02:21

y los vamos a utilizar

play02:24

pastel en la capital de agua ahí tenemos

play02:27

ya las tres imágenes tenemos que definir

play02:32

si vamos ahora el código dos estructuras

play02:36

de datos donde vamos a guardar los

play02:37

nombres de países

play02:40

y no perder tiempo y las referencias a

play02:43

las imágenes las imágenes

play02:46

básicamente recibimos un vector países

play02:50

el vector banderas y países están

play02:54

nombres países y banderas que es un

play02:57

vector de enteros

play02:58

tengo una referencia de cada una de

play03:00

estas imágenes tenemos dispuestos al

play03:01

capital aragua bleu automáticamente acá

play03:03

en android se crea una clase r subclase

play03:07

de agua habla y hace referencia a cada

play03:09

una de estas imágenes para que nosotros

play03:11

después fácilmente mediante el método de

play03:13

séptima presos y al morrito un momento

play03:16

mostremos dicha imagen vamos al concrete

play03:20

en un creyente obtenemos las referencias

play03:22

del espinar que vamos que cree línea

play03:30

espina y mediante efe pide lo dejan por

play03:35

el nombre por defecto

play03:37

y d

play03:39

bueno anteriormente cuando cargamos una

play03:42

espina con una lista de string creamos

play03:45

un array adapter acabamos de crear un

play03:47

adaptador propio para indicar la

play03:50

estructura de cada ítem nosotros antes

play03:53

crear una estructura para cada

play03:56

y el espinar actívate una imagen y un

play04:00

serbio es el ay out no existe entonces

play04:03

luego ti que crear vamos a ir al capital

play04:05

al lado y vamos a hacer botón derecho y

play04:08

xml un layout propio este va a ser el

play04:13

león llamar por ejemplo el ítem espinal

play04:17

este interés spinner va a representar

play04:19

cada uno de los ítems que iba a tener el

play04:21

speed

play04:24

bueno que lo ponga ser el layout va a

play04:27

ser horizontal también va a mostrar una

play04:31

imagen disponemos unimax view

play04:33

seleccionamos cualquiera de las banderas

play04:37

vamos a hacer las chicas por ejemplo de

play04:39

80 de pepe por 60

play04:44

dp

play04:48

vamos layaway como dejamos vacío y vamos

play04:53

a disponer un textil

play04:56

al lado este quiere mostrar el nombre

play04:59

del país vamos a llamar facebook país

play05:03

como el tamaño del puente

play05:07

busquemos 6

play05:10

texas en vez de 14 s p vamos a ponerles

play05:13

poder educar etc para que sea más grande

play05:17

cuando se desconoce para qué servían

play05:19

todas las propiedades

play05:20

esta es la estructura lo que sí vamos a

play05:24

hacer acá este qué

play05:26

que se adapte

play05:29

cura counter dos se va a ocupar nada más

play05:32

ese espacio pro league este sistema del

play05:35

a uno de los ítems que iba a tener el

play05:38

espinar uno de los ítems después van a

play05:40

crear tantos ítems como elementos tengas

play05:44

volvemos al código dijimos de

play05:46

estructuras de las dos memorias tenemos

play05:48

el vector con los países el vector con

play05:51

la referencia de las banderas

play05:53

y ahora tenemos que crear una raya

play05:57

larter sin nombre un adaptador propio

play05:59

que debe generar la clase base con crear

play06:02

países le vamos a llamar países adaptar

play06:09

no existe por supuesto vamos a llegar a

play06:11

usted

play06:14

ahora

play06:16

y vamos a proceder a aplicar estas

play06:18

clases esta clase no existe vamos a

play06:21

crear

play06:22

la clase país es adaptar

play06:27

a crear

play06:32

debemos crear la clase

play06:34

ya vamos a estar acá directamente

play06:37

nosotras ayuda y el entorno de android

play06:39

estudio y vamos a hacer

play06:43

dice

play06:44

a raptar

play06:46

primera

play06:49

de la espera se vacía al after

play06:54

y vamos crear nuestro adaptador

play06:57

la clase se adopte una serie de métodos

play06:59

que tenemos que sobreescribir lo vamos a

play07:01

hacer

play07:02

automáticamente y ahí tenemos los cuatro

play07:05

métodos que tenemos que sobreescribir

play07:08

y tenemos generados 4 metros

play07:11

vamos viendo los más importantes por

play07:13

ejemplo que es con lo que voy a hacer

play07:15

devolverá cantidad de elementos de la

play07:18

estructura de datos básicamente vamos

play07:19

trabajando como son vectores paralelos

play07:21

acabamos de volver países punto lenteja

play07:25

khanty elementos que tiene el vector

play07:26

países y existen cuando recuperemos un

play07:30

dato de nuestra espina vamos a estar

play07:32

devolviendo el nombre del país va a ser

play07:33

países

play07:38

el subíndice

play07:42

y el más importante el get in vivo uno

play07:46

donde vamos

play07:49

y gráficas

play07:52

6 carlos ítem cómo vamos a hacer esto a

play07:55

ver vamos a

play07:57

no tanto tiempo

play08:00

voy a copiar el pegante y que retornaron

play08:03

nuestra vista de cada ítem como usted

play08:05

que por un lado definir una variable de

play08:07

tipo layout infla ter la llama infla te

play08:11

de esta clase lo que nos va a permitir

play08:12

es obtener la referencia cuando le

play08:16

pasamos el main activities o sea la

play08:19

referencia del objeto de esta clase para

play08:22

que posteriormente podamos insertar los

play08:25

elementos visuales como obtenemos bueno

play08:29

vamos a importar la clase y más vivo y

play08:33

más view fíjense que llamamos el find

play08:35

you by haití igual que hemos hecho por

play08:38

ejemplo acá al vídeo bayly pero acá

play08:40

decimos referencias directamente la

play08:42

actividad y acá estamos haciendo

play08:43

referencia del archivo

play08:47

y tem espinar sí porque hemos obtenido

play08:51

un per view' en esta variable oeste para

play08:55

nuestra calidad destaca obtenemos

play08:57

inflamos lo que se llama el archivo y

play08:59

gmail que acabamos crear acá es la

play09:01

relación de en este archivo por demos el

play09:03

listo envió el eastern espina muestra un

play09:07

solo ítem o tienen la estructura de un

play09:09

solo ítem y ahí es donde

play09:12

los vamos a mostrar más frío en el

play09:15

templo

play09:16

importamos

play09:19

y ahí tenemos pensé que este es el

play09:22

método que se ejecuta por cada uno de

play09:25

los elementos del

play09:27

de la espina así que lo que hacemos en

play09:30

cada elemento de la espina tenemos que

play09:32

mostrar la imagen y el país y como saben

play09:37

cada uno cual debe ir mostrando porque

play09:40

con el cetec indicamos que el vector

play09:42

países muestre la posición a caballo y

play09:45

llegando a la posición en el momento

play09:47

llegará el 0 el 1 y el 2 ya que son tres

play09:50

elementos que tiene ahí el vector

play09:53

podemos probar

play09:57

vamos a enfrentar de emulador y

play10:01

no se muestran porque falta una sola

play10:04

línea y seguimos creado el adaptador

play10:06

pero no le hemos dicho al espinar

play10:09

adaptador utilice el adaptador 1 que

play10:12

cargó queda y ahora si luego de enlazar

play10:15

el espinar

play10:18

de el espinar con el adaptador 1 que acá

play10:20

vamos a crear debería mostrar ya poblado

play10:23

los elementos de la espina esta es

play10:26

podría decirse como una receta que uno

play10:28

cuando utiliza librerías o bibliotecas

play10:32

debe respetar o sea tenemos crear una

play10:35

clase que debe de base adaptar

play10:38

implementar el gate view donde indicamos

play10:42

que va a ir mostrando en este caso el

play10:45

más frío y el tec view que hemos creado

play10:47

en la interfaz visual el archivo xml

play10:50

lo último creo que nos faltaba de este

play10:53

problema es poner un botón para

play10:55

recuperar

play10:58

como recupera

play11:00

enlazamos

play11:04

pq cuidar ítems

play11:11

con un clic

play11:18

haremos el método recuperar

play11:26

y ya le diremos los mostraremos todas

play11:30

maker tips y el espinar que se le quiten

play11:35

puntos string

play11:40

y ya tenemos nos va a devolver en este

play11:43

momento el país seleccionado porque

play11:46

hemos elegido que ese sea el dato que va

play11:49

a recuperar

play11:51

la espina de más elementos la espina en

play11:54

otros controles visuales

play11:57

recuperar argentina tenemos

play12:00

paul y bueno con esto hemos visto de que

play12:03

cuando tenemos las estructuras más

play12:05

complejas estos controles visuales más

play12:07

complejos con el spinner con varios

play12:09

elementos internos tenemos que plantear

play12:12

un adaptador propio hasta acá de la

play12:15

espina gracias

Rate This

5.0 / 5 (0 votes)

Etiquetas Relacionadas
Android StudioSpinnerCustomizaciónDesarrolloAplicacionesInterfacesTutorialAdaptadoresXMLProgramación