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
2
3
4
5
6
7
8
Intent player = new Intent(this, Player.class);  

String path = "/sdcard/clip.avi"

Bundle bundle = new Bundle();
bundle.putString("filePath", path);

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.

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

Y colorín colorado este cuento se ha acabado.