Вы находитесь на странице: 1из 9

Android: uso de ListView

1 de 9

http://joomla.probando-cosas.com.ar/index.php/item/129-android-uso-de-...
Le sirvi la info de este sitio?
(/)

Inicio (/index.php/homepage)

Blog1 (/)

Le interesa donar para ayudar a sostenerlo?

Android apps (/index.php/android-apps)

Microhumor (visor) beta (http://probando-cosas.com.ar/microhumor/azar.php)


Sitios amigos (/index.php/sitios-amigos)

Buscar

Cul es mi ip (http://probando-cosas.com.ar/ip/)

Contacto (/index.php/contacto)

Above Average

Nombre de usuario

Contrasea
Cocina (28) (/index.php
/itemlist/category/9-cocina)
Postres (14)
(/index.php/itemlist
/category/14-postres)
Informtica (0) (/index.php
/itemlist/category
/2-informatica)
Android (52)
(/index.php/itemlist
/category/16-android)
Bases de datos (0)
(/index.php/itemlist
/category/10-basesde-datos)
CouchDB (5)
(/index.php/itemlist
/category
/7-couchdb)
MySQL (3)
(/index.php/itemlist
/category/18-mysql)
PostgreSQL (11)
(/index.php/itemlist
/category
/11-postgresql)
Hardware (8)
(/index.php/itemlist
/category/19-hardware)
Linux (26) (/index.php
/itemlist/category
/3-linux)
Mquinas virtuales
(5) (/index.php
/itemlist/category
/6-maquinasvirtuales)
Raid (2)
(/index.php/itemlist
/category/5-raid)
Webmin (1)
(/index.php/itemlist

Recordarme
Iniciar sesin

Basic Girls
These girls can

Martes, 07 Enero 2014 10:08

Android: uso de
ListView

Olvid su contrasea?
(/index.php/component
/users/?view=reset)
Olvid su nombre de
usuario? (/index.php
/component/users
/?view=remind)
Crear una cuenta
(/index.php/component
/users
/?view=registration)

Escrito por Leonardo Paskvan (/index.php/itemlist/user/27leonardopaskvan)


tamao de la fuente

Imprimir (/index.php/item/129-android-

uso-de-listview?tmpl=component&print=1) Email (/index.php


/component/mailto/?tmpl=component&template=protostar&
link=5170f141ef95cabf59d011643071e9324a1f471e)

Valora este artculo

(0 votos)

Le sirvi la info de este sitio?


Le interesa donar para
ayudar a sostenerlo?

03/10/2014 12:20 a.m.

Android: uso de ListView

2 de 9

/category
/4-webmin)
MS Windows (3)
(/index.php/itemlist
/category/8-mswindows)
Oficina (3) (/index.php
/itemlist/category
/12-oficina)
Migrando a
LibreOffice (2)
(/index.php/itemlist
/category
/13-migrandoa-libreoffice)
Pfsense (6) (/index.php
/itemlist/category
/17-pfsense)
Puertos tcp y udp (1)
(/index.php/itemlist
/category/21-puertostcp-y-udp)
Varios (23) (/index.php
/itemlist/category
/15-varios)
OK ... el sitio es mo y
publico lo que quiero (6)
(/index.php/itemlist/category
/20-ok-el-sitio-es-mioy-publico-lo-que-quiero)
Varios (14) (/index.php
/itemlist/category/1-varios)

http://joomla.probando-cosas.com.ar/index.php/item/129-android-uso-de-...

(/media

/k2/items/cache/8da476f72f06a276b1f930cdb28c21f1_XL.jpg)

Todos podemos colaborar con


Missing Children
(http://www.missingchildren.org.ar/)

Android: trabajando con listview

Al final de este artculo, est el link para bajar el proyecto de


ejemplo completo, exportado desde el ADT.
Usando listas en Android.
Mostrar varios elementos como una lista es un patrn bastante
comn en las aplicaciones para telfonos mviles. El usuario ve una
lista que se puede desplazar (si es necesario) e interactuar con ella.
Una representacin:

03/10/2014 12:20 a.m.

Android: uso de ListView

3 de 9

http://joomla.probando-cosas.com.ar/index.php/item/129-android-uso-de-...

Como dijimos anteriormente, es posible permitirle al usuario


interactuar con la lista. Se puede hacer esto mediante action bar, o
por ejemplo si el usuario selecciona alguno de los tems, podemos
mostrarle un detalle de ese tem.

Usando listas en Android.


Android provee las clases ListView y ExpandableListView , y
ambas muestran listas de tems con capacidad de
scroll. ExpandableListView soporta el agrupado de tems. Y estos
pueden ser de cualquier tipo.
Las listas, necesitan un modelo de datos, que se define en los
adaptadores.
Adaptadores.
Los adaptadores administran el modelo de datos y los adaptan a
cada fila de la lista.
Cada fila de la lista es en realidad un layout que lo podemos hacer
tan complejos como necesitemos. Por ejemplo, podemos mostrar
una imagen a la izquierda y dos lineas con texto a la derecha.

03/10/2014 12:20 a.m.

Android: uso de ListView

http://joomla.probando-cosas.com.ar/index.php/item/129-android-uso-de-...

El archivo de este layout sera algo similar a:


<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res
/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_marginRight="6dip"
android:contentDescription="TODO"
android:src="/@drawable/ic_launcher" />
<TextView
android:id="@+id/secondLine"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/icon"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Description"
android:textSize="12sp" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@id/secondLine"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_alignWithParentIfMissing="true"
android:layout_toRightOf="@id/icon"
android:gravity="center_vertical"
android:text="Example application"
android:textSize="16sp" />
</RelativeLayout>

El adaptador expandir este layout para cada fila, usando el mtodo


getview() y asignar los datos a cada objeto en particular.
El adaptador se asigna a la ListView mediante el mtodo
setAdapter . El adaptador es el que se encarga de fitrar y ordenar la
lista. Para esto, necesitaremos implementar la lgica en un custom
adapter.
Adaptador por defecto.
Android por defecto nos provee algunas implementaciones. Un par
de ellas son ArrayAdapter y CursorAdapter . El primero puede
trabajar con datos basados en arrays, o en java.util.List . El
segundo est pensado para interactuar con bases de datos.
Ejemplo simple de listView.
Vamos a crear un proyecto que llamaremos listviewprueba, con SDK
mnimo 16, donde la actividad principal ser MainActivity.java y el
layout correspondiente ser activity_main.xml
Vamos a crear un nuevo layout que llamaremos layout_list.xml
res/layout/layout_list.xml
<ListView xmlns:android="http://schemas.android.com
/apk/res/android"
android:id="@+id/milistview"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />

Seguimos con MainActivity.


package com.example.listviewprueba;

4 de 9

03/10/2014 12:20 a.m.

Android: uso de ListView

http://joomla.probando-cosas.com.ar/index.php/item/129-android-uso-de-...

import ...
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_lista);
//Asignamos el objeto listview
final ListView NuestroListView = (ListView)
findViewById(R.id.milistview);
//Este es nuestro array con los datos a
mostrar
String[] valores = new String[] {
"Pizza", "Panchos", "Jamn ibrico",
"Tallarines", "oquis", "Sopa", "Sandwichs",
"Asado", "Milanesas", "Pan duro", "Costeletas",
"and", "Pescado", "Pollo a la parrilla",
"Agnolottis", "Ravioles", "Gallina", "Guiso de
cerdo", "Pastrn", "Queso", "Cordero", "Conejo",
"Caf con leche" };
//Creamos un arraylist donde pondremos los
datos a mostrar
final ArrayList<String> datosParaListView =
new ArrayList<String>();
//Llenamos nuestro arraylist con los datos
del array
for (int i = 0; i < valores.length; ++i) {
datosParaListView.add(valores[i]);
}
//Creamos el adaptador, usando un
StableArrayAdapter, definiendo como formato
//uno de los provistos por Android:
simple_list_item_1 final
StableArrayAdapter adaptador = new
StableArrayAdapter(this,
android.R.layout.simple_list_item_1,
datosParaListView);
NuestroListView.setAdapter(adaptador);
}
private class StableArrayAdapter extends
ArrayAdapter<String> {
HashMap<String, Integer> mIdMap = new
HashMap<String, Integer>();
public StableArrayAdapter(Context context,
int textViewResourceId, List<String> objects) {
super(context, textViewResourceId,
objects);
for (int i = 0; i < objects.size(); ++i) {
mIdMap.put(objects.get(i), i);
}
}
}
}

En este punto, si ejecutamos nuestra app:

5 de 9

03/10/2014 12:20 a.m.

Android: uso de ListView

http://joomla.probando-cosas.com.ar/index.php/item/129-android-uso-de-...

Como no salvamos los datos en ningn lado, al producir un evento


onResume, la lista se vuelve a crear desde cero.

Ahora vamos a agregarle una equea interaccin con el usuario.


Cuando se seleccione alguno de los tems, este se borrar de la
pantalla usando una animacin.
En MainActivity, agregamos un listener al ListView, donde al
producirse el evento, se obtiene el id del tem, y lo borramos.
...
...
NuestroListView.setOnItemClickListener(new
AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?>
adaptadorContenedor, final View view, int posicion,
long arg3) {
//Obtenemos el tem que se seleccion
String item = (String) adaptadorContenedor
.getItemAtPosition(posicion);
//Creamos una animacin para el obejto view
del tem en cuesti
//que al final de la misma, se producir el
borrado del tem
view.animate().setDuration(2000).alpha(0).withEndAction(new
Runnable() {
@Override
public void run() {
//Borramos de la lista el tem que
obtuvimos anteriormente
datosParaListView.remove(item);
//Notificamos al adaptador que
cambiaron los datos.
adaptador.notifyDataSetChanged();
view.setAlpha(1);
}
});
}
});

6 de 9

03/10/2014 12:20 a.m.

Android: uso de ListView

7 de 9

http://joomla.probando-cosas.com.ar/index.php/item/129-android-uso-de-...

...
...

Ejecutamos la aplicacin, y luego de ir seleccionando varios tems,


vemos que la lista se acorta.

El proyecto completo exportado, y la aplicacin NO firmada lista


para usar, la podemos bajar desde http://www.probandocosas.com.ar/deposito/android/exportaciones/2014/listview1/
(http://www.probando-cosas.com.ar/deposito/android/exportaciones
/2014/listview1/)

Sugerencia: el siguiente artculo sera una continuacin: Android:


ListView, implementando adaptadores propios.
(http://joomla.probando-cosas.com.ar/index.php/item/130-androidlistview-implementando-adaptadores-propios)
Visto 1453 veces Modificado por ltima vez en Mircoles, 08 Enero
2014 12:11

Twittear

Like Be the first of your friends to like


this.

Publicado en Android (/index.php/itemlist/category/16-android)


Etiquetado como android (/index.php/itemlist/tag/android)
android developer tools (/index.php/itemlist
/tag/android%20developer%20tools) ListView (/index.php/itemlist
/tag/ListView) usar ListView en android (/index.php/itemlist

03/10/2014 12:20 a.m.

Android: uso de ListView

http://joomla.probando-cosas.com.ar/index.php/item/129-android-uso-de-...

/tag/usar%20ListView%20en%20android)

Openvn + Pfsense: no se conectan uno o ms clientes


(error:14090086:SSL ) (/index.php/item/249-openvn-pfsenseno-se-conectan-uno-o-mas-clientes-error-14090086-ssl)
TP-LINK td-w8970 en Arnet (/index.php/item/248-tp-linktd-w8970-en-arnet)
Android: cmo hacer un HTTP POST a PHP/MYSQL para
salvar datos en nuestra base de datos (/index.php/item/247android-como-hacer-un-http-post-a-php-mysql-para-salvardatos-en-nuestra-base-de-datos)
Tip: Linux, resolver con nmap usando IP el nombre de equipos
Windows (/index.php/item/245-tip-linux-resolver-con-nmapusando-ip-el-nombre-de-equipos-windows)
Configurar y probar GlusterFS distribudo en tres equipos.
(/index.php/item/244-configurar-y-probar-glusterfs-distribuidoen-tres-equipos)

Android: cmo hacer un HTTP POST a PHP/MYSQL para


salvar datos en nuestra base de datos (/index.php/item/247android-como-hacer-un-http-post-a-php-mysql-para-salvardatos-en-nuestra-base-de-datos)
Android: Ejemplo de uso de acelermetro y simular sensibilidad
ajustable (/index.php/item/232-android-ejemplo-de-usode-acelerometro-y-simular-sensibilidad-ajustable)
Tip: android, prevenir que nuestra aplicacin se suspenda
(/index.php/item/231-tip-android-prevenir-que-nuestraaplicacion-se-suspenda)
Android: cmo implementar un scanner de cdigo de barras (o
QR) en nuestra app. (/index.php/item/224-androidcomo-implementar-un-scanner-de-codigo-de-barrasen-nuestra-app)
Configurar cliente Android iVMS 4500 para hikvision
ds-7208hvi-sv (/index.php/item/214-configurar-cliente-androidivms-4500-para-hikvision-ds-7208hvi-sv)
Ms en esta categora: Aviso: primer app para android.
Calculadora de costo de km o milla recorridos con nuestro auto
en uso laboral (/index.php/item/128-aviso)
Android:
ListView, implementando adaptadores propios. (/index.php
/item/130-android-listview-implementando-adaptadorespropios)

Inicia sesin para enviar comentarios


volver arriba (/index.php/item/129-android-uso-delistview#startOfPageId129)

8 de 9

03/10/2014 12:20 a.m.

Android: uso de ListView

9 de 9

http://joomla.probando-cosas.com.ar/index.php/item/129-android-uso-de-...

Est aqu: Home (/)


Android (/index.php/itemlist/category/16-android)
Android: uso de ListView

2014 Probando cosas

Volver arriba

03/10/2014 12:20 a.m.

Вам также может понравиться