miércoles, 7 de marzo de 2012

Android: pasando datos entre Actividades

En muchas ocasiones al iniciar una actividad necesitamos enviar información extra. Se podría asimilar con un parámetro de una función, pero no disponemos de ellos.

Objetivo
El usuario indica la ruta de un fichero en una actividad y se pasa la ruta a la actividad siguiente.

Pasando los datos
Para poder enviar los datos a otra actividad debemos hacerlo mediante un Bundle. A grandes rasgos un  Bundle es un contenedor de tipos primitivos, y su uso es bastante sencillo.

1:  Intent player = new Intent(this, Player.class);  
2:    
3:  String path = "/sdcard/clip.avi"  
4:              
5:  Bundle bundle = new Bundle();  
6:  bundle.putString("filePath", path);  
7:    
8:  player.putExtras(bundle);  

Con un par de lineas esta todo hecho. Se crea un Bundle se le agregan todos los datos que queramos (en mi caso solo preciso un String) y finalmente se agrega el Bundle al Intent mediante putExtras.


Recibiendo los datos
Y para ir finalizando solo queda recuperar los datos desde la actividad recién iniciada.

 Bundle bundle = getIntent().getExtras();  
 String filePath = bundle.getString("filePath");  

Y colorín colorado este cuento se ha acabado.