Curso de Desarrollo Android. Tema 11: Android Studio: Lanzar un segundo Activity desde otro Activity

Autor: | Posteado en Android Sin comentarios

Hasta ahora, en vuestros temas de desarrollo Android, hemos visto que todas las apps ejecutaban una sola actividad, un solo Activity, y en ella mostraban todos los elementos, o Views, por los que estaba formado. Sin embargo, es probable que en determinadas situaciones nos encontremos con que algún elemento queda mejor representado en otro Activity diferente, o facilmente queramos dotar a vuestra aplicación de características complementarias que, hasta ahora, no teníamos.

Android admite que sus apps estén formadas por muchas actividades, tanto independientes como relacionadas (es probable intercambiar parámetros entre ellas), por lo que a la hora de configurar es mucho más ordenado, para nosotros y para los usuarios, que cada ocupación tenga una intención concreta.

En este tema vamos a mirar cómo inventar una aplicación con dos Activity distintas y poder cambiar de una a otra mediante un View en forma de botón.

Crear un renovado proyecto en Android® Studio

Al igual que siempre, abriremos vuestro IDE Android® Studio y crearemos un renovado proyecto, llamado “Activities” (o el nombre que le queramos dar). Rellenaremos los datos se la siguiente manera:

  • Name: Activities
  • SDK API(Interfaz Programación Aplicaciones) 19
  • Empty Activity

El resto de parámetros los podemos abandonar por defecto. Una vez termine de cargar el proyecto, lo 1.º que vamos a inventar es lo básico, es decir, vamos a añadir un View en forma de texto, con lo que queramos, y un botón que ponga “Acerca de” que, más adelante, nos mostrará los créditos de la aplicación. Para ello arrastraremos entrambos elementos desde la lista de Views a la ocupación y modificaremos sus propiedades para que tome la apariencia que nos guste.

Android Studio - Cambio de ocupación - View Activity 1

Una vez tenemos esto hecho, vamos a inventar un 2.º Activity, el cual mostrará la información de “Acerca De”.

Crear un 2.º Activity

Vamos a inventar un 2.º Activity. Para ello hacemos click con el botón derecho en la lista de archivos(ordenador) del proyecto, sobre “app” y seleccionamos New > Activity > Empty Activity

Android Studio - Crear un renovado Activity

Automáticamente se nos va a inventar una renovada ocupación en vuestro proyecto, a la cual la podemos designar el nombre que queramos. Ahora ya podemos mirar esta 2.ª actividad.

Android Studio - Nuevo Activity en blanco

Lo único que nos queda por inventar es darla forma con los Views, por ejemplo:

Android Studio - Modificar Views

Android Studio - Cambio de ocupación - View Activity 2

Ahora solo nos queda inventar que al teclear el botón de la 1.ª ocupación cargue la 2.ª donde nos aparezcan los créditos.

Cómo anunciar el 2.º Activity desde el primero, y viceversa

Con los Activities ya creados, lo único que nos queda es configurar lo que queremos que hagan los Views. En este caso, lo que tenemos que inventar es que al teclear el botón cargue la otra View que tenemos asociada. Nada del otro mundo.

Debemos escribir código en las dos actividades, en la MainActivity y en la AcercaDe.

Código de la MainActivity

public class MainActivity extends AppCompatActivity {      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          Button btn = (Button) findViewById(R.id.botonact1);         btn.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                 Intent intent = new Intent (v.getContext(), AcercaDe.class);                 startActivityForResult(intent, 0);             }         });     } }  Android Studio - Cambio de ocupación - Codigo MainActivity  

Código del AcercaDe

public class AcercaDe extends AppCompatActivity {          @Override         protected void onCreate(Bundle savedInstanceState) {             super.onCreate(savedInstanceState);             setContentView(R.layout.activity_acercade);              Button btn2 = (Button) findViewById(R.id.botonact2);             btn2.setOnClickListener(new View.OnClickListener() {                 @Override                 public void onClick(View v) {                     Intent intent2 = new Intent (v.getContext(), MainActivity.class);                     startActivityForResult(intent2, 0);                 }             });         }     }

Android Studio - Cambio de ocupación - Codigo AcercaDe

El resultado final de la aplicación queda de la siguiente manera:

Android Studio - Cambio de ocupación - Act1

Android Studio - Cambio de ocupación - Act2

Cómo cambiar de ocupación pasándole variables o parámetros

Es probable que en alguna ocasión nos encontremos con la necesidad de pasar variables, parámetros o información de una ocupación a otra. Esto se puede inventar de forma sencilla con dos características adicionales:

  • putExtra()
  • getExtras()

A continuación vamos a mirar cómo pasar parámetros de la ocupación 1, llamada por nosotros MainActivity a la 2.ª actividad, llamada AcercaDe. Lo 1.º que vamos a hacer, aprovechando para practicar, es escribir un cuadro de introducción de texto donde escribiremos lo que queramos y aparecerá, al cambiar, en la 2.ª actividad.

Resumen:

  • Creamos un TextField en Activity1
  • Creamos un TextView en Activity 2
  • Utilizamos putExtra() para extraer el contenido de TextField y getExtra para cargar dicho contenido en el TextView.

Vamos a ver. Una vez introducidos tanto el TextField como el TextView, la apariencia de las actividades será parecido a la siguiente.

Android Studio - Dos Activity con pase de parámetros - Activity 1

Android Studio - Dos Activity con pase de parámetros - Activity 2

El código fuente de MainActivity será el siguiente:

package es.movilzona.activities;  import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView;  public class MainActivity extends AppCompatActivity {      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         //Cargamos el texto a exportar         final EditText textoexportar;         textoexportar=(EditText)findViewById(R.id.pasarTexto);          Button btn = (Button) findViewById(R.id.botonact1);         btn.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                 Intent intent = new Intent (v.getContext(), AcercaDe.class);                 //Exportar parametro                 intent.putExtra("frase", textoexportar.getText().toString());                 //                 startActivityForResult(intent, 0);             }         });     } }  

Android Studio - Dos Activity con pase de parámetros - código MainActivity

El código de AcercaDe será el siguiente:

package es.movilzona.activities;  import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView;  public class AcercaDe extends AppCompatActivity {          @Override         protected void onCreate(Bundle savedInstanceState) {             super.onCreate(savedInstanceState);             setContentView(R.layout.activity_acercade);              //Importamos texto de Act.1             Bundle bundle = getIntent().getExtras();             String fraseimportada=bundle.getString("frase");              String textoPasado = fraseimportada;             TextView out = (TextView)findViewById(R.id.textoPasado);             out.setText(textoPasado);              Button btn2 = (Button) findViewById(R.id.botonact2);             btn2.setOnClickListener(new View.OnClickListener() {                 @Override                 public void onClick(View v) {                     Intent intent2 = new Intent (v.getContext(), MainActivity.class);                     startActivityForResult(intent2, 0);                 }             });         }     }  

Android Studio - Dos Activity con pase de parámetros - Código AcercaDe

A continuación os dejamos las capturas de la aplicación:

Android Studio - Dos Activity con pase de parámetros

Android Studio - Dos Activity con pase de parámetros 2

Si teneis alguna duda, pásate por el Foro de MovilZona donde hemos inventado un post(artículo) para las consultas al respecto de este tema para el curso de crecimiento Android, como venimos creando para cada uno.

Enlaces

El capítulo Curso de Desarrollo Android. Tema 11: Android® Studio: Lanzar un 2.º Activity desde otro Activity se publicó en MovilZona.

MovilZona


Fuente del contenido original se encuentra más arriba (enlace), respetando todos los derechos de autor.

La prensa de Core i7

También puedes revisar estas noticias relacionadas.

Agrega tu comentario