➜ Pasar parámetros entre activities
Pasar parámetros entre actividades en Android
Existen dos métodos principales para pasar parámetros entre actividades en Android:
1. Intent Extras:
-
¿Qué es? Un Intent es un objeto que representa una solicitud para realizar una acción, como iniciar una actividad, mostrar un diálogo o enviar un mensaje de transmisión. Los Extras son un conjunto de pares clave-valor que se pueden adjuntar a un Intent para pasar datos entre componentes de la aplicación.
-
¿Cómo se usa?
-
Crea un Intent: Crea un objeto Intent utilizando la clase
Intenty especifica la clase de la actividad de destino como constructor. -
Agrega Extras: Para agregar datos a un Intent, utiliza el método
putExtra()de la claseIntent. El primer parámetro es la clave de los datos y el segundo parámetro es el valor de los datos. Puedes agregar varios pares clave-valor al mismo Intent. -
Inicia la actividad: Para iniciar la actividad de destino, utiliza el método
startActivity()de la claseActivityy pasa el Intent como parámetro. -
Recupera los Extras: En la actividad de destino, puedes recuperar los Extras del Intent utilizando el método
getIntent()de la claseActivityy luego el métodogetStringExtra()ogetIntExtra(), etc., para obtener los valores correspondientes a cada clave.
-
Ejemplo:
En la actividad MainActivity, queremos pasar el nombre "Juan Pérez" a la actividad DetailActivity.
MainActivity.java:
Java
Intent intent = new Intent(this, DetailActivity.class);
intent.putExtra("nombre", "Juan Pérez");
startActivity(intent);
En la actividad DetailActivity, queremos recuperar el nombre pasado desde MainActivity.
DetailActivity.java:
Java
String nombre = getIntent().getStringExtra("nombre");
TextView textView = findViewById(R.id.textViewNombre);
textView.setText(nombre);
2. Bundle:
-
¿Qué es? Un Bundle es un objeto similar a un diccionario que se utiliza para almacenar y pasar datos. Es más flexible que Extras, ya que puede almacenar no solo tipos de datos primitivos, sino también objetos complejos como listas y mapas.
-
¿Cómo se usa?
-
Crea un Bundle: Crea un objeto Bundle utilizando la clase
Bundle. -
Agrega datos: Para agregar datos a un Bundle, utiliza el método
put()de la claseBundle. El primer parámetro es la clave de los datos y el segundo parámetro es el valor de los datos. Puedes agregar varios pares clave-valor al mismo Bundle. -
Pasa el Bundle: Para pasar el Bundle a una actividad, puedes hacerlo de dos maneras:
-
Como parámetro de Intent: Al igual que con Extras, puedes adjuntar el Bundle al Intent utilizando el método
putExtra(). -
Como argumento de método: Si la actividad de destino tiene un método que recibe un Bundle como parámetro, puedes pasar el Bundle directamente a ese método.
- Recupera los datos: En la actividad de destino, puedes recuperar los datos del Bundle utilizando el método
get()de la claseBundle. El primer parámetro es la clave de los datos y el segundo parámetro es el tipo de dato esperado.
-
Ejemplo:
En la actividad MainActivity, queremos pasar un objeto Persona con el nombre "Juan Pérez" y la edad 30 a la actividad DetailActivity.
MainActivity.java:
Java
Persona persona = new Persona("Juan Pérez", 30);
Bundle bundle = new Bundle();
bundle.putParcelable("persona", persona);
Intent intent = new Intent(this, DetailActivity.class);
intent.putExtras(bundle);
startActivity(intent);
En la actividad DetailActivity, queremos recuperar el objeto Persona pasado desde MainActivity.
DetailActivity.java:
Java
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
Persona persona = bundle.getParcelable("persona");
TextView textViewNombre = findViewById(R.id.textViewNombre);
textViewNombre.setText(persona.getNombre());
TextView textViewEdad = findViewById(R.id.textViewEdad);
textViewEdad.setText(String.valueOf(persona.getEdad()));
}
2,903 visitas
Capítulo 26 – Calculadora »
Descarga el código del proyecto
Descarga el código fuente del proyecto adquiriendo el curso completo
Comprar