Ir al contenido principal

Como enviar parámetros de una Actividad a otra

Hace unos días veíamos como invocar a una actividad desde otra, en este tutorial vamos a ver como pasar parámetros desde la actividad origen a la destino, para por ejemplo indicar el identificador de una lista para enviárselo a una pantalla de detalle.

Por un lado cuando se invoque a la nueva actividad deberemos realizarlo de la siguiente manera:

       Intent intent = new Intent(this, MI_CLASE.class);
       intent.putExtra("nombre", "Droide Code");
       intent.putExtra("id", 10);
       intent.putExtra("activo", true); 

Como podemos ver lo único que tenemos que hacer es usar el método putExtra del intent para añadir la información que deseemos. El método está sobrecargado para poder añadir todo tipo de información (String, byte, int, long, boolean, etc)

En la Actividad destino podremos recuperar la información de la siguiente manera:

       Bundle extras = getIntent().getExtras();
       String s = extras.getString("nombre");
       int i = extras.getInt("id");
       boolean b = extras.getBoolean("activo");

Simplemente deberemos acceder al Intent con el método getIntent() y posteriormente al objeto Bundle que contiene los extras.


Devolver datos a la actividad origen

Otra posibilidad es devolver información desde la segunda actividad a la de origen cuando esta termine.

Para ello la invocación desde la actividad original deberemos hacerlo de la siguiente manera:

       startActivityForResult(intent, 1);
El segundo parámetro es opcional, e indica el requestCode o código de petición. Podremos enviar un código u otro para que la actividad destino se comporte de una manera determinada.

En la actividad origen tambien deberemos sobreescribir el método onActivityResult:


       @Override  
       protected void onActivityResult(int requestCode, int resultCode, Intent data){
             if (requestCode==1 && resultCode==RESULT_OK) {
                    //código a ejecutar...
             }
       }

Este método se ejecutará cuando la actividad destino finalice y recibirá el requestCode con el que se llamó y el resultado. De esta forma podremos realizar una u otra acción dependiendo del resultado obtenido.

Por último debemos incluir el siguiente código en la actividad destino para devolver el resultado que deseemos y finalizar la actividad:

       Intent intent = new Intent();
       setResult(RESULT_OK, intent);
       finish();

Deberemos instanciar un nuevo Intent y enviarlo junto con el resultado usando el método setResult(). Por último finalizaremos la actividad con finish()

Nota: en la intención que viaja desde la segunda actividad a la primera igualmente puede enviarse la información que deseemos usando el método putExtra.

Comentarios

Entradas populares de este blog

Spring AI: First application

¡Hola! 👋 Si estás aquí, seguramente te pica la curiosidad sobre cómo integrar Inteligencia Artificial en tus aplicaciones Java sin complicarte la vida. Spring AI ha llegado para facilitarnos enormemente esta tarea, ofreciendo una abstracción unificada para interactuar con modelos como OpenAI, Azure, o incluso modelos locales con Ollama. En este tutorial,  vamos a crear juntos  un ejemplo muy sencillo: un endpoint REST que te permitirá charlar con una IA. ¡Verás que con muy pocas líneas de código tienes algo funcionando! ¿Qué necesitamos antes de empezar? Para seguir este tutorial sin problemas, asegúrate de tener a mano: Java 17  o superior (Spring Boot 3 lo requiere). Tu IDE favorito (IntelliJ, Eclipse, VS Code...). Una  API Key de OpenAI  (puedes conseguirla en  platform.openai.com ). Si prefieres no gastar créditos, al final te cuento cómo hacerlo gratis con Ollama. 1. Creando los cimientos del proyecto Lo más rápido es ir a  start.spring.io  ...

Android Studio, el nuevo entorno de desarrollo (I/O 2013)

Una de las novedades que nos ha dejado la conferencia Google I/0 2013 ha sido la publicación de un nuevo entorno de desarrollo que pasará a sustituir a Eclipse + SDK + ADT . El nuevo entorno pretende simplificar el desarrollo de aplicaciones, estando todo mucho más integrado y pensado para desarrollar específicamente para Android. Android Studio está basado en  IntelliJ IDEA (El cual para muchos desarrolladores está considerado el mejor IDE del mercado). El principal objetivo es hacerlo todo más usable y orientado a la programación en Android, por lo que para ello se han incluido nuevas refactorizaciones y quick fixes (soluciones rapidas) para corregir errores comunes, así como recomendaciones varias. Se ha incluido un nuevo editor gráfico mucho más potente (basado en drag-and-drop) que mejorará la experiencia y la edición de las pantallas (dicho sea de paso, el que teníamos hasta ahora era bastante mejorable). Este nuevo editor nos dará una vista previa más real del resul...

Instalación entorno desarrollo (Eclipse + plugin + SDK Android)

En este artículo explicaremos los principales pasos para la instalación del entrono de desarrollo de Android. La propuesta de Google y la que vamos a seguir en el manual es la siguiente: JRE (Java Runtime Environment) Eclipse Android SDK Eclipse Plug-in (Android Development Toolkit - ADT) Instalación JRE : El jre es la máquina virtual de java y es el software que nos permitirá ejecutar código java en nuestro equipo. La versión mínima requerida es la 5.0, y a no ser que necesitemos una versión especifica para otro software que usemos, recomiendo instalar la última versión disponible, en estos momentos va por la versión 7 (update 21) Podéis descargar el instalador de la siguiente ruta: http://java.com/inc/BrowserRedirect1.jsp Eclipse : Es el IDE recomendado por Google para desarrollar en Android, y puede que el más extendido para el desarrollo de aplicaciones Java. Podemos descargarlo de la url http://www.eclipse.org/downloads/ En principio cualquier versión que descarguéis...