Hasta este momento utilizamos un solo Activity para desarrollar nuestras aplicaciones, sin embargo es común que las aplicaciones tengan más de una ventana, trabajar con varios activitys no es complicado si antes tienes bien claro que es lo que quieres lograr, es decir, debes realizar un esquema de las diferentes ventanas que tendrá tu App y su relación entre ellas.
En el siguiente ejemplo, tenemos 4 Activitys A,B,C y D donde A es el activity principal de este se abre el Activity B, B puede abrir tanto el Activity C como el Activity D y D puede abrir a su vez el Activity A.
Teniendo este simple esquema en cuenta, ya estamos listos para implementar el código en Eclipse.
Creamos una nueva aplicación:
Application Name: Multi Activitys
Project Name: MultiActivitys
Package Name: com.tutorial.multiactivitys
Al primer activity, la clase se llamara AActivity.java, eclipse crea automáticamente el XML respectivo activity_a.xml.
Para crear nuevas clases y ventanas, Clic derecho en cualquier paquete de la carpeta SRC -> New -> Other -> Android -> Android Activity -> Next -> Tenemos varias opciones de ventanas, elegimos Blank Activity -> Next -> colocamos los datos de la nueva Activity (BActivity) -> Finish
Realizamos el mismo paso para agregar las restantes clases CActivity.java y DActivity.java, nuestro proyecto tiene ahora la siguiente estructura:
Para desplazarnos por las diferentes ventanas, podemos hacer uso de Button, TextView, ImageView, etc.
Para abrir una nueva activity, se utiliza la instrucción:
startActivity( new Intent(this, NOMBRE_CLASE_ACTIVITY.class));
IMPLEMENTACIÓN
Implementaremos el código para abrir la activity B desde la activity A, el código es similar si no el mismo para las demás clases.
A nuestro layout activity_a.xml, le añadimos un button de nombre «@+id/button1» lo posicionamos casi al centro de la pantalla, en realidad no importa donde lo coloques 🙂
Abrimos la clase AActivity.java y tenemos:
package com.tutorial.multiactivitys; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class AActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_a); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.a, menu); return true; } }
La clase modificada es:
package com.tutorial.multiactivitys; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class AActivity extends Activity implements OnClickListener { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_a); // button = (Button) findViewById( R.id.button1 ); button.setOnClickListener(this); // } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.a, menu); return true; } @Override public void onClick(View arg0) { //Inicia nueva actividad startActivity( new Intent(this, BActivity.class)); } }
Añadimos el OnClickListener para saber cuando el usuario presiona el botón, en el evento onClick del button añadimos la instrucción startActivity y eso es todo.
Si ejecutas ahora el proyecto, seras capaz de abrir la ventana B desde la ventana A, para abrir más ventanas, desde esta misma u otra activity, el procedimiento es similar. Puedes ver en el siguiente video la aplicación completa
Proyecto Multi Activitys
🙂
El componente swing JLabel nos permite cargar una imagen con la propiedad setIcon, sin embargo la imagen no toma el tama[...]
Apache POI es la API de Java para el trabajo con archivos de Microsoft como son Word, Excel y Power Point. Apache POI se[...]
Cada versión de Linux viene con su propia terminal predeterminada para interactuar con el Sistema Operativo a través de[...]
La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, e[...]
Java Help es (o era) una librería para java que permitía añadir ventanas de ayuda HTML a nuestros proyectos, al ser una[...]
En este videotutorial veremos la forma de crear un ejecutable para programas hechos en lenguaje Java con el software Jav[...]