lunes, 25 de marzo de 2013

Android - abrir ventanas/Activity

En este pequeño tutorial intentare explicar como desde una ventana/ pantalla/ o como se les llama en android Activity, abrir otra.

Lo primero que debemos hacer es crearun proyecto en android, nos servira el de Hola mundo que habiamos creado en un tutorial pasado, si no lo as visto te recomuendo pasar por el tu primer proyecto en android despues meteremos un texto para saber en que ventana estamos y un boton que sera el encargado de enviarnos a la siguiente ventana; esto deberiamos poderlo hacer simplemente arrastrando los elementos desde la paleta a nuestro Activity, aunque tambien podemos hacerlo editando el XML; deberia queda algo como la imagen de abajo.


Despues deberemos dirigirnos a la carpeta res/layout de nuestro proyecto y hacer un click derecho para ir a new>Android XML File en caso de que no nos aparezca hay podemos ir a other y dentro de la carpeta Android seleccionarlo.

se nos abrira una ventana parecida a la de mas abajo en la que debemos escribir el nombre que tendra la nueva ventana, recuerda que debe empezar por una letra y no puede contener mayusculas despues de esto podemos configurar algun detalle en next o darle a Finish.

Editaremos la vista de esta nueva Activity añadiendo un texto que la diferencia de la anterior, como podemos ver en la imagen de abajo.

Bueno, parece que ya tenemos todo echo no?? pues queda lo mas importante decirle donde y como abrirlo, para ello debemos crear la actividad (activity) que va a ser la encargada de lanzar esta vista; para ello iremos a la carpeta src/(el directorio de carpetas que hallamos declarado al inicio) y alli hacer click derecho> new >Class se nos abrira una ventana en la que debemos dar el nombre de la actividad, lo suyo es que tenga el mismo nombre que la vista (me parece haber leido en algun sitio que si no da errores), asi que tendremos un archivo con el mismo nombre de nuestra vista terminado en .java con un contenido similar al que sigue:

package org.rogama.lanzar2ventana;

public class ventana2 {

}

Justo al lao del nombre de la clase (ventana2) debemos extender a Activity quedando algo como lo que sigue:

public class ventana2 extends Activity {

Recuerda que si utilizas la ayuda de eclipse, NetBeans o el IDE que mas te agrade este debe añadirete las librerias, si no te tocara a ti añadir las referencias a mano, en este caso debemos importar android.app.Activity
Una vez hecho esto iremos hasta Source>override/Implement Methods... (para los que no esten familiarizados con esto, lo que estamos haciendo es sobreescribir un fragmento de codigo que nuestra Activity ya tiene definido, o bien por erencia o por extensiones)

Marcaremos la casilla onCreate(Bundle)

Y esto nos habra creado un codigo similar al sigueinte:

@Override 
 public void onCreate(Bundle savedInstanceState) {
 //TODO Auto-generated
        super.onCreate(savedInstanceState);
    }

Debajo de super debemos escribir lo siguiente:
setContentView(R.layout.ventana2);

Ahora en nuestro MainActivity.java debemos crear el siguiente metodo
public void lanzar2Ventana(View view){
      Intent inten = new Intent(this, ventana2.class);
            startActivity(inten);
    }


El modo mas sencillo ahora es ir a activity_main.xml, y en las propiedades del boton asocial este metodo al evento onClick, como mostramos en la imagen inferior.


Para finalizar deberemos ir al fichero AndroidManifest.xml y ayudandonos de la interfac grafica que nos tiene preparado Eclipse señalaremos la pestaña de Application y alli en la parte inferior izquierda, donde pone Application Nodes le damos al boton Add.

Seleccionamos Activity en la ventana que se nos abre y damos al boton de Ok, justo a su derecha se nos habilitara un menu donde podemos ingresar algunos parametros, en Name escribiremos el nombre de la ventana precedido por un . en nuestro caso .ventana2 y en label una pequeña descripción


Ya podemos lanzarlo y probarlo
Puedes ver y descargar todo el codigo desde: http://adf.ly/Ld3kj