Crear una Aplicación Android
Su nombre es "TurnOn". Esta se compone de un botón que al ser presionado despliega el mensaje "Mi primera aplicación en Android!" en una etiqueta estática en la parte inferior. ¿Sencillo cierto?, procedamos a crearla.
(Ver como instalar Android Studio)
Paso 1: Crear un nuevo proyecto en Android Studio
Lo primero es abrir Android Studio e ir a File > New Project y generar una nueva aplicación que cotenga una actividad en blanco. A esta le asignarás el nombre de Main. Automáticamente se creará una nueva actividad Main.java y un archivo de diseño(layout) llamado activity_main.xml.
Puedes descargar el código completo desde el siguiente enlace. Descomprimes la carpeta e importas desde Android Studio:
Descargar Código
Una actividad es la representación visual te una aplicación Android, podría asemejarse con frames o ventanas. A diferencia de otras aplicaciones, una aplicación Android se basa en el ciclo de vida de la actividad y no en un punto de entrada main establecido.
(Ver mas sobre el ciclo de vida de una actividad)
La actividad Main tendría la siguiente forma:
public class Main extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Como ves, se crea actividad que hereda sus comportamientos de la clase Activity, la cual representa una actividad. Luego sobrescribimos el método onCreate() para generar todas las acciones iniciales. Por ejemplo, la invocación de setContentView() permite convertir la definición del archivo de diseño en objetos Java y así visualizar la interfaz de la aplicación. A este proceso se le llama Inflar, y es la primera acción que debes realizar en onCreate().
Paso 2: Editar el archivo de diseño para la aplicación Android
Un archivo de diseño es la descripción de como se verá tu aplicación al ser ejecutada. Para crear una debes usar archivos XML y definir una jerarquía con elementos representativos en la interfaz. A estos elementos se les llaman Views.
A continuación se muestra el archivo de diseño de nuestra aplicación:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".Main">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button"
android:id="@+id/button"
android:layout_centerHorizontal="true" />
</RelativeLayout>
Como ves, se definieron los elementos <Button> y <TextView>. El primero representa un botón y el segundo el texto estático que mostraremos. Los atributos que tienen definidos modelan caracteristicas como su ancho, largo, margenes, padding y demás.
Paso 3: Implementar la interfaz OnClickListener del botón
Luego de definir el diseño, sigue la implementación de los eventos. Es muy similar al control de eventos en el paquete swing de Java para que te hagas una idea.
Al presionar un botón puedes controlar ese evento con la interfaz OnClickListener. Esta clase te provee un método callback llamado onClick() que se ejecuta automaticamente cuando el componentes es presionado. Por lo que implementaremos en la clase Main dicha escucha y luego la relacionaremos al boton con el metodo setOnClickListener. Veamos:
@Override
public void onClick(View v) {
/*
Cambiar texto del TextView
*/
text.setText("Mi primera aplicación Android!");
}
El texto del TextView se modifica con el método setText(), el cual recibe la cadena de texto que mostrará.
Paso 4: Juntando todos los aspectos
Despues de implementar la escucha del botón, el código de la actividad quedaría así:
public class Main extends Activity implements View.OnClickListener{
/*
Instancias de los Views
*/
TextView text;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
Obtener el texto y el botón
*/
text = (TextView)findViewById(R.id.textView);
button = (Button)findViewById(R.id.button);
/*
Setear escucha del botón
*/
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
/*
Cambiar texto del TextView
*/
text.setText("Mi primera aplicación Android!");
}
}