SlideShare una empresa de Scribd logo
Tutorial 5 de Desarrollo de Aplicaciones Android: Control Listview, Interface TextWatcher
Autor: Ing. Luis Ernesto Castillo Alfaro
En esta oportunidad hablaremos de la forma como se pueden filtrar elementos de una lista según
un texto ingresado, la idea es que conforme se empiece a escribir la lista muestre solamente los
elementos cuyos textos contengan al texto ingresado.
Antes de iniciar el caso práctico hablaremos un poco acerca del control listview de android que es
con el que trabajaremos para nuestro ejemplo a codificar.
ListView: Es un control que permite mostrar elementos en una lista, dichos elementos son
agregados a la lista haciendo uso de un adaptador el cual permite poblar al listview de diferentes
formas como por ejemplo haciendo uso de los elementos pertenecientes a un array o de los
elementos o datos que se obtienen de una consulta a una base de datos.
Como indicamos un control lisview es poblado por medio de un adaptador que es el que provee
acceso a los elementos de la lista a mostrar en el listview.
Bien ahora vamos a empezar el caso práctico, probablemente en Internet hayan visto un ejemplo
parecido sin embargo en este caso hemos decidido cambiar su funcionalidad y el objetivo que
pretende alcanzar.
Caso Práctico: Se tiene una lista de contactos telefónicos y se desea filtrar solo aquellos cuyo
nombre o apellido sea parecido al texto ingresado.
Pasos a seguir:
1- Crear un proyecto con el nombre TextWatcher
2- Agregar al layout principal los controles para nuestra aplicación que en este caso serían: 1
etiqueta, 1 control caja de texto (control EditText en Android) y 1 control listview que
contendrá los elementos de la lista a filtrar, como es sabido la interfaz que será mostrada
de cara al usuario no solo se construye agregando directamente los controles al layout si
Tutorial 5 de Desarrollo de Aplicaciones Android: Control Listview, Interface TextWatcher
Autor: Ing. Luis Ernesto Castillo Alfaro
no también definiéndolos en el archivo xml de nuestro layout principal, tal y como se
muestra en la siguiente imagen:
La interfaz que se obtiene luego de definir los controles en el archivo xml del layout
principal es la siguiente:
3- Escribir el código necesario en la actividad principal para que nuestra aplicación cumpla
con su objetivo:
Tutorial 5 de Desarrollo de Aplicaciones Android: Control Listview, Interface TextWatcher
Autor: Ing. Luis Ernesto Castillo Alfaro
Bien lo que estamos definiendo en el código son objetos del tipo listview que es el que se
encargará de mostrar la lista de contactos de la agenda a mostrar, de otro lado también
definimos un objeto de tipo EditText en el cual escribiremos el texto que funcionará como
filtro para mostrar solo los elementos de la lista que contengan el texto ingresado en
dicho control EditText. De otro lado también se define en un arreglo de tipo string la lista
de elementos a mostrar en nuestra lista, en este caso hay 10 contactos a mostrar,
finalmente establecemos una variable de tipo string para un arraylist que es donde se irán
agregando los elementos de la lista que cumplan con el requisito de contener el texto
ingresado.
En el evento OnCreate de la actividad escribimos el siguiente código:
En esta porción del código lo que hacemos en primer lugar es enlazar para los objetos
lvcontacto de tipo lisview y para el objeto txtcontacto de tipo EditText con sus respectivos
controles definidos previamente en el archivo xml correspondiente al layout principal. En
segundo lugar lo que hacemos es poblar el objeto lvcontacto con los elementos definidos
en el array de tipo string Contacto_array.
Luego vamos a hacer uso de la interfaz TextWatcher para el control editable txtcontacto, y
por medio de sus métodos podremos establecer que acciones realizar una vez que se
detecte que el texto ingresado en el control txtcontacto ha cambiado.
Tutorial 5 de Desarrollo de Aplicaciones Android: Control Listview, Interface TextWatcher
Autor: Ing. Luis Ernesto Castillo Alfaro
En el método OnTextChanged de la interfaz TextWatcher definimos las siguientes líneas
de código:
Lo que definimos en el método OnTextChanged en primer lugar es una variable de tipo
String con el nombre textocontacto que es la que almacenará el texto ingresado en el
control txtcontacto como filtro de los elementos de la lista a mostrar.
Luego establecemos un bucle en el cual participarán cada uno de los elementos del array
Contacto_array desde el primer elemento hasta el último, para cada uno de los elementos
de dicho array se evaluará si cumplen con la condición de contener en su texto el texto
ingresado en el control txtcontacto, el mismo que puede ser parte del nombre o parte
apellido o que también puede ser el nombre o apellido del o los contactos a filtrar y
mostrar, si se cumple dicha condición el elemento del array contacto que está siendo
evaluado será agregado como nuevo elemento al array de tipo lista
array_contactofiltrado. Este proceso se repetirá hasta el último elemento del array
contacto_array.
Finalmente en la siguiente porción de código:
Poblamos el listview lvcontacto con los elementos agregados al array_contactofiltrado
Ahora corremos la aplicación como una aplicación android:
Tutorial 5 de Desarrollo de Aplicaciones Android: Control Listview, Interface TextWatcher
Autor: Ing. Luis Ernesto Castillo Alfaro
Como prueba vamos a buscar los contactos que cuyos apellidos o nombres contenga la
letra C:
Tutorial 5 de Desarrollo de Aplicaciones Android: Control Listview, Interface TextWatcher
Autor: Ing. Luis Ernesto Castillo Alfaro
Ahora mostraremos los contactos cuyo apellido sea Miranda
y así sucesivamente pueden realizar los filtros que deseen.

Más contenido relacionado

La actualidad más candente

Practica multiplicacion de_dos_numeros
Practica multiplicacion de_dos_numerosPractica multiplicacion de_dos_numeros
Practica multiplicacion de_dos_numeros
ANTHONY OCHOA
 
Practica division de_dos_numeros
Practica division de_dos_numerosPractica division de_dos_numeros
Practica division de_dos_numeros
ANTHONY OCHOA
 
APLICACIONES CREADAS PARA ANDROID
APLICACIONES CREADAS PARA ANDROIDAPLICACIONES CREADAS PARA ANDROID
APLICACIONES CREADAS PARA ANDROID
Karlozz Patrik Gonzalez May
 
Programa 3 Calcular el sueldo
Programa 3 Calcular el sueldoPrograma 3 Calcular el sueldo
Programa 3 Calcular el sueldo
Esmedc20
 
1. introduccion al desarrollo web php parte 1
1.  introduccion al desarrollo web php parte 11.  introduccion al desarrollo web php parte 1
1. introduccion al desarrollo web php parte 1Julio Martinez
 
Programa para sumar 2 números
Programa para sumar 2 númerosPrograma para sumar 2 números
Programa para sumar 2 números
Deklok
 
Primera aplicación de Android
Primera aplicación de AndroidPrimera aplicación de Android
Primera aplicación de Androidspartha187
 
Android
AndroidAndroid
Practica sustraccion-de-dos-numeros(2)
Practica sustraccion-de-dos-numeros(2)Practica sustraccion-de-dos-numeros(2)
Practica sustraccion-de-dos-numeros(2)
Alejandra Rodriguez
 
introduccion al desarrollo de aplicaciones en c#
introduccion al desarrollo de aplicaciones en c#introduccion al desarrollo de aplicaciones en c#
introduccion al desarrollo de aplicaciones en c#
Eduardo Carrillo
 
Lazarus
LazarusLazarus
CONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERCONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERDarwin Durand
 
apps "operaciones aritmeticas usando spinner"
apps "operaciones aritmeticas usando spinner"apps "operaciones aritmeticas usando spinner"
apps "operaciones aritmeticas usando spinner"
ang13gam3r
 
Programa 6 presentacion
Programa 6 presentacionPrograma 6 presentacion
Programa 6 presentacion
Clemente Juarez
 

La actualidad más candente (19)

Practica multiplicacion de_dos_numeros
Practica multiplicacion de_dos_numerosPractica multiplicacion de_dos_numeros
Practica multiplicacion de_dos_numeros
 
Practica division de_dos_numeros
Practica division de_dos_numerosPractica division de_dos_numeros
Practica division de_dos_numeros
 
APLICACIONES CREADAS PARA ANDROID
APLICACIONES CREADAS PARA ANDROIDAPLICACIONES CREADAS PARA ANDROID
APLICACIONES CREADAS PARA ANDROID
 
Programa 3 Calcular el sueldo
Programa 3 Calcular el sueldoPrograma 3 Calcular el sueldo
Programa 3 Calcular el sueldo
 
1. introduccion al desarrollo web php parte 1
1.  introduccion al desarrollo web php parte 11.  introduccion al desarrollo web php parte 1
1. introduccion al desarrollo web php parte 1
 
Programa para sumar 2 números
Programa para sumar 2 númerosPrograma para sumar 2 números
Programa para sumar 2 números
 
Primera aplicación de Android
Primera aplicación de AndroidPrimera aplicación de Android
Primera aplicación de Android
 
Android
AndroidAndroid
Android
 
5. modificar datos
5.  modificar  datos5.  modificar  datos
5. modificar datos
 
3. consultar datos
3.  consultar datos3.  consultar datos
3. consultar datos
 
Suma de dos_numeros
Suma de dos_numerosSuma de dos_numeros
Suma de dos_numeros
 
Practica sustraccion-de-dos-numeros(2)
Practica sustraccion-de-dos-numeros(2)Practica sustraccion-de-dos-numeros(2)
Practica sustraccion-de-dos-numeros(2)
 
4. insertar datos
4.  insertar datos4.  insertar datos
4. insertar datos
 
2. hoja de estilo
2.  hoja de estilo2.  hoja de estilo
2. hoja de estilo
 
introduccion al desarrollo de aplicaciones en c#
introduccion al desarrollo de aplicaciones en c#introduccion al desarrollo de aplicaciones en c#
introduccion al desarrollo de aplicaciones en c#
 
Lazarus
LazarusLazarus
Lazarus
 
CONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERCONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVER
 
apps "operaciones aritmeticas usando spinner"
apps "operaciones aritmeticas usando spinner"apps "operaciones aritmeticas usando spinner"
apps "operaciones aritmeticas usando spinner"
 
Programa 6 presentacion
Programa 6 presentacionPrograma 6 presentacion
Programa 6 presentacion
 

Similar a Tutorial Nro.5 Desarrollo de Aplicaciones Móviles con Android

Controles básicos y controles de selección
Controles básicos y controles de selecciónControles básicos y controles de selección
Controles básicos y controles de selección
Alberto Paillao Farias
 
Controles basicos final
Controles basicos finalControles basicos final
Controles basicos finalprofesorpfpd
 
Controles y Tipos de datos
Controles y Tipos de datosControles y Tipos de datos
Controles y Tipos de datos
DiegoFaria46
 
Aplica los fundamentos de programacion web
Aplica los fundamentos de programacion webAplica los fundamentos de programacion web
Aplica los fundamentos de programacion webmiguel9728
 
Manual visual studio 2010
Manual visual studio 2010Manual visual studio 2010
Manual visual studio 2010
John Calixto Ayala
 
Integracion i reports_con_netbeans
Integracion i reports_con_netbeansIntegracion i reports_con_netbeans
Integracion i reports_con_netbeansDada3311
 
Manual android
Manual androidManual android
Manual android
Jose Pereda
 
Programar aplicaciones windows forms
Programar aplicaciones windows formsProgramar aplicaciones windows forms
Programar aplicaciones windows forms
mellcv
 
Linq to sql 5
Linq to sql 5Linq to sql 5
Linq to sql 5
jcfarit
 
Fundamentosbasicosdevisualbasic
FundamentosbasicosdevisualbasicFundamentosbasicosdevisualbasic
Fundamentosbasicosdevisualbasicunachi
 
Fundamentos basicos de visual basic
Fundamentos basicos de visual basicFundamentos basicos de visual basic
Fundamentos basicos de visual basic
Colegio Luis felipe Borja del Alcázar
 
Controles y tipos de datos
Controles y tipos de datosControles y tipos de datos
Controles y tipos de datos
pedropirela2
 
Cuadro lista
Cuadro listaCuadro lista
Cuadro lista
Lic. Rolando Torres
 
Presentación de visual studio (1)
Presentación de visual studio (1)Presentación de visual studio (1)
Presentación de visual studio (1)
cinthya alfaro
 
Tutorial visual basic 6
Tutorial visual basic 6Tutorial visual basic 6
Tutorial visual basic 6
leymar286
 
Funciones con vectores c++
Funciones con vectores c++Funciones con vectores c++
Funciones con vectores c++
jose machado
 
TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23
equipotresamp
 
Controles swing listas
Controles swing listasControles swing listas
Controles swing listas
jhoffry dekentai
 

Similar a Tutorial Nro.5 Desarrollo de Aplicaciones Móviles con Android (20)

Controles básicos y controles de selección
Controles básicos y controles de selecciónControles básicos y controles de selección
Controles básicos y controles de selección
 
Controles basicos final
Controles basicos finalControles basicos final
Controles basicos final
 
Controles y Tipos de datos
Controles y Tipos de datosControles y Tipos de datos
Controles y Tipos de datos
 
Aplica los fundamentos de programacion web
Aplica los fundamentos de programacion webAplica los fundamentos de programacion web
Aplica los fundamentos de programacion web
 
Visual basic 1º Año
Visual basic  1º AñoVisual basic  1º Año
Visual basic 1º Año
 
Manual visual studio 2010
Manual visual studio 2010Manual visual studio 2010
Manual visual studio 2010
 
Integracion i reports_con_netbeans
Integracion i reports_con_netbeansIntegracion i reports_con_netbeans
Integracion i reports_con_netbeans
 
Manual android
Manual androidManual android
Manual android
 
Programar aplicaciones windows forms
Programar aplicaciones windows formsProgramar aplicaciones windows forms
Programar aplicaciones windows forms
 
Linq to sql 5
Linq to sql 5Linq to sql 5
Linq to sql 5
 
Fundamentosbasicosdevisualbasic
FundamentosbasicosdevisualbasicFundamentosbasicosdevisualbasic
Fundamentosbasicosdevisualbasic
 
Fundamentos basicos de visual basic
Fundamentos basicos de visual basicFundamentos basicos de visual basic
Fundamentos basicos de visual basic
 
Controles y tipos de datos
Controles y tipos de datosControles y tipos de datos
Controles y tipos de datos
 
manual visual_studio_2010_
manual visual_studio_2010_manual visual_studio_2010_
manual visual_studio_2010_
 
Cuadro lista
Cuadro listaCuadro lista
Cuadro lista
 
Presentación de visual studio (1)
Presentación de visual studio (1)Presentación de visual studio (1)
Presentación de visual studio (1)
 
Tutorial visual basic 6
Tutorial visual basic 6Tutorial visual basic 6
Tutorial visual basic 6
 
Funciones con vectores c++
Funciones con vectores c++Funciones con vectores c++
Funciones con vectores c++
 
TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23TEMAS DE JAVA DEL 11 AL 23
TEMAS DE JAVA DEL 11 AL 23
 
Controles swing listas
Controles swing listasControles swing listas
Controles swing listas
 

Último

Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 

Último (20)

Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 

Tutorial Nro.5 Desarrollo de Aplicaciones Móviles con Android

  • 1. Tutorial 5 de Desarrollo de Aplicaciones Android: Control Listview, Interface TextWatcher Autor: Ing. Luis Ernesto Castillo Alfaro En esta oportunidad hablaremos de la forma como se pueden filtrar elementos de una lista según un texto ingresado, la idea es que conforme se empiece a escribir la lista muestre solamente los elementos cuyos textos contengan al texto ingresado. Antes de iniciar el caso práctico hablaremos un poco acerca del control listview de android que es con el que trabajaremos para nuestro ejemplo a codificar. ListView: Es un control que permite mostrar elementos en una lista, dichos elementos son agregados a la lista haciendo uso de un adaptador el cual permite poblar al listview de diferentes formas como por ejemplo haciendo uso de los elementos pertenecientes a un array o de los elementos o datos que se obtienen de una consulta a una base de datos. Como indicamos un control lisview es poblado por medio de un adaptador que es el que provee acceso a los elementos de la lista a mostrar en el listview. Bien ahora vamos a empezar el caso práctico, probablemente en Internet hayan visto un ejemplo parecido sin embargo en este caso hemos decidido cambiar su funcionalidad y el objetivo que pretende alcanzar. Caso Práctico: Se tiene una lista de contactos telefónicos y se desea filtrar solo aquellos cuyo nombre o apellido sea parecido al texto ingresado. Pasos a seguir: 1- Crear un proyecto con el nombre TextWatcher 2- Agregar al layout principal los controles para nuestra aplicación que en este caso serían: 1 etiqueta, 1 control caja de texto (control EditText en Android) y 1 control listview que contendrá los elementos de la lista a filtrar, como es sabido la interfaz que será mostrada de cara al usuario no solo se construye agregando directamente los controles al layout si
  • 2. Tutorial 5 de Desarrollo de Aplicaciones Android: Control Listview, Interface TextWatcher Autor: Ing. Luis Ernesto Castillo Alfaro no también definiéndolos en el archivo xml de nuestro layout principal, tal y como se muestra en la siguiente imagen: La interfaz que se obtiene luego de definir los controles en el archivo xml del layout principal es la siguiente: 3- Escribir el código necesario en la actividad principal para que nuestra aplicación cumpla con su objetivo:
  • 3. Tutorial 5 de Desarrollo de Aplicaciones Android: Control Listview, Interface TextWatcher Autor: Ing. Luis Ernesto Castillo Alfaro Bien lo que estamos definiendo en el código son objetos del tipo listview que es el que se encargará de mostrar la lista de contactos de la agenda a mostrar, de otro lado también definimos un objeto de tipo EditText en el cual escribiremos el texto que funcionará como filtro para mostrar solo los elementos de la lista que contengan el texto ingresado en dicho control EditText. De otro lado también se define en un arreglo de tipo string la lista de elementos a mostrar en nuestra lista, en este caso hay 10 contactos a mostrar, finalmente establecemos una variable de tipo string para un arraylist que es donde se irán agregando los elementos de la lista que cumplan con el requisito de contener el texto ingresado. En el evento OnCreate de la actividad escribimos el siguiente código: En esta porción del código lo que hacemos en primer lugar es enlazar para los objetos lvcontacto de tipo lisview y para el objeto txtcontacto de tipo EditText con sus respectivos controles definidos previamente en el archivo xml correspondiente al layout principal. En segundo lugar lo que hacemos es poblar el objeto lvcontacto con los elementos definidos en el array de tipo string Contacto_array. Luego vamos a hacer uso de la interfaz TextWatcher para el control editable txtcontacto, y por medio de sus métodos podremos establecer que acciones realizar una vez que se detecte que el texto ingresado en el control txtcontacto ha cambiado.
  • 4. Tutorial 5 de Desarrollo de Aplicaciones Android: Control Listview, Interface TextWatcher Autor: Ing. Luis Ernesto Castillo Alfaro En el método OnTextChanged de la interfaz TextWatcher definimos las siguientes líneas de código: Lo que definimos en el método OnTextChanged en primer lugar es una variable de tipo String con el nombre textocontacto que es la que almacenará el texto ingresado en el control txtcontacto como filtro de los elementos de la lista a mostrar. Luego establecemos un bucle en el cual participarán cada uno de los elementos del array Contacto_array desde el primer elemento hasta el último, para cada uno de los elementos de dicho array se evaluará si cumplen con la condición de contener en su texto el texto ingresado en el control txtcontacto, el mismo que puede ser parte del nombre o parte apellido o que también puede ser el nombre o apellido del o los contactos a filtrar y mostrar, si se cumple dicha condición el elemento del array contacto que está siendo evaluado será agregado como nuevo elemento al array de tipo lista array_contactofiltrado. Este proceso se repetirá hasta el último elemento del array contacto_array. Finalmente en la siguiente porción de código: Poblamos el listview lvcontacto con los elementos agregados al array_contactofiltrado Ahora corremos la aplicación como una aplicación android:
  • 5. Tutorial 5 de Desarrollo de Aplicaciones Android: Control Listview, Interface TextWatcher Autor: Ing. Luis Ernesto Castillo Alfaro Como prueba vamos a buscar los contactos que cuyos apellidos o nombres contenga la letra C:
  • 6. Tutorial 5 de Desarrollo de Aplicaciones Android: Control Listview, Interface TextWatcher Autor: Ing. Luis Ernesto Castillo Alfaro Ahora mostraremos los contactos cuyo apellido sea Miranda y así sucesivamente pueden realizar los filtros que deseen.