Para seguir con Android voy a hablaros de la clase Activity, ya que es la que compone las aplicaciones de este OS. Voy a empezar con la actividad HelloAndroid que creamos en la entrada anterior:
package com.example.helloandroid; import android.app.Activity; import android.os.Bundle; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
Al crear una clase que extienda de Activity hay que implementar al menos la función onCreate(), que es la que se ejecuta cuando se crea la actividad. Por defecto esa función recibe un paquete (Bundle), que contiene el estado anterior de la actividad en caso de que haya sido suspendida. Como se puede ver arriba, la clase HelloAndroid le pasa ese paquete a la superclase de la que extiende.
Lo siguiente que se hace en la función de creación es cargar el layout o diseño de la actividad, cargando una interfaz definida en XML. Como ya expliqué en otra entrada anterior, los diseños se guardan en “res/layout/”, y para llamarlos se utiliza R, indicando el nombre del fichero, como en este caso, “main.xml” pasa a ser “R.layout.main”. Si quisiéramos cargar otro layout sólo tendríamos que crearlo y cargarlo con “R.layout.LO_QUE_SEA”
Por ahora, de entre las funciones que incluye la actividad he usado:
- onConfigurationChanged(): a la que se llama cuando cambia la configuración, la usé para dejar fija la pantalla y que no rotara (ya explicaré otro día como).
- getResources(): para obtener los recursos asociados a R.
- startActivity(): para cambiar de actividad, más abajo explicaré como.
- finish(): para finalizar la actividad, OJO, cuando sea posible, no corta la ejecución en seco, termina de ejecutar. Con esto quiero decir que si debajo de un finish tenemos otras lineas de código, no van a dejar de ejecutarse.
- getIntent(): devuelve la intención que ha comenzado la actividad. Se utiliza para pasar variables entre actividades, eso irá a otra entrada del blog…
- getSharedPreferences(): para obtener las preferencias compartidas de la aplicación, que son variables que se almacenan en el móvil y no se borran si no la desinstalas, otra cosa que va a otra entrada.
Ahora para terminar voy a poner un ejemplo de uso de la clase Intent (Intención?), que indica una operación a realizar, como puede ser el cambio entre dos actividades. Para el ejemplo voy a crear otra actividad que se llame GoodbyeAndroid:
- Primero creo una nueva clase Java que extienda de Activity:
- A continuación creo un nuevo layout goodbye.xml (esto no lo explico hoy) y lo cargo en la función de creación de la nueva clase, de forma que quede:
package com.example.helloandroid; import android.app.Activity; import android.os.Bundle; public class GoodbyeAndroid extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.goodbye); //El resto del codigo } }
- Ahora añado la nueva actividad al AndroidManifest, ya sea usando la herramienta gráfica o añadiendo directamente al XML debajo de </activity> lo siguiente:
<activity android:name=".GoodbyeAndroid"></activity>Como se puede ver GoodbyeAndroid.java pasa a ser “.GoodByeAndroid“, y eso ocurre con el resto de actividades.
- Por último añado a la función de creación de HelloAndroid el código con el Intent que cambia entre las dos actividades (para que funcione hay que importar el paquete android.content.Intent):
Intent intent = new Intent(HelloAndroid.this, GoodbyeAndroid.class); startActivity(intent);
Y ya está, lo próximo será como usar la herramienta de crear interfaces y como cargar los elementos desde el código. Un saludo!

Muy ricas estas dosis de android para novatos!
Muy bueno el ejemplo, ahora mismo voy a revisar los otros. Gracias por estar aquí. Saludos desde Perú
Excelente entrada, me ha servido para entender mejor la clase Activity y la relacion de ella con Intent, saludos.
Facil sencillo y para toda la familia…