Programando para Android: una sencilla aplicación

Vamos a hablar sobre como programar una aplicación para un dispositivo con Android que se va a tratar de una sencilla calculadora.

Como todos sabemos, Android se programa mediante el lenguaje de programación Java. Este ejemplo de la calculadora puede parecer demasiado básico, pero con una idea inicial de cómo hacer una pequeña aplicación para Android y nociones sobre Java, veremos que desarrollar un programa más complejo es muy fácil.

En primer lugar necesitaremos el Android SDK, Tras instalarlo deberemos ejecutar el archivo android dentro de la carpeta tools y hacer lo siguiente:

  • Instalar la plataforma de la versión Android a emular, lo haremos desde la pestaña Available packages y elegiremos la versión que queramos (2.1, 2.2, 2.3, etc)
  • Crear un dispositivo virtual, pestaña Virtual devices, que será nuestro dispositivo a emular.

 Como segundo paso haremos uso de la plataforma Eclipse y su plugin ADT para el desarrollo de Android bajo Eclipse.

Ahora nos quedaría configurar Eclipse para que supiera la ruta hasta el SDK de Android y tendríamos todo preparado para trabajar. Lo podemos hacer desde el menú Window -> Preferences y dentro de la ventana en la pestaña Android tenemos la opción SDK Location.

Ahora tenemos todo preparado y configurado para empezar a crear aplicaciones. La web del SDK de Android contiene varios ejemplo de como empezar a programar y el ejemplo más sencillo es el del “Hola Mundo” que ya lo vimos en entradas anteriores.

Nosotros nos vamos a basar en uno un poco más avanzado y lo vamos a ampliar hasta crear una aplicación con cierta utilidad. Este ejemplo es el de como posicionar elementos con tamaños y posiciones relativas y vamos a añadir algunos elementos y funcionalidades para crear nuestra sencilla calculadora.

Creando nuestra primera aplicación para Android

Para ver cual queremos que sea la interfaz final e intuir el funcionamiento, vamos a mostrar una captura de pantalla del resultado final en el emulador:

calculadora_apk

donde podemos ver tres elementos: TextView (objeto para mostrar texto), EditText (caja de entrada de texto) y Button (botón).

Empezaremos creando en Eclipse un proyecto para Android, modificaremos el archivo res/layout/activity_main.xml en su vista de código de fuente y pegaremos el siguiente código XML:

<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:paddingBottom=”@dimen/activity_vertical_margin”
android:paddingLeft=”@dimen/activity_horizontal_margin”
android:paddingRight=”@dimen/activity_horizontal_margin”
android:paddingTop=”@dimen/activity_vertical_margin”
tools:context=”.MainActivity”>

<TextView

android:id=”@+id/label_a”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:text=”Operando A:”/>

<EditText

android:id=”@+id/op_a”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:background=”@android:drawable/editbox_background”

android:layout_below=”@id/label_a”/>

<TextView

android:id=”@+id/label_b”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:layout_below=”@id/op_a”

android:text=”Operando B:”/>

<EditText

android:id=”@+id/op_b”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:background=”@android:drawable/editbox_background”

android:layout_below=”@id/label_b”/>

<Button

android:id=”@+id/sumar”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_below=”@id/op_b”

android:layout_alignParentLeft=”true”

android:layout_marginLeft=”1dip”

android:onClick=”cSumar”

android:text=”+” />

<Button

android:id=”@+id/restar”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_toRightOf=”@id/sumar”

android:layout_alignTop=”@id/sumar”

android:onClick=”cRestar”

android:text=”-” />

<Button

android:id=”@+id/multiplicar”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_toRightOf=”@id/restar”

android:layout_alignTop=”@id/restar”

android:onClick=”cMultiplicar”

android:text=”*” />

<Button

android:id=”@+id/dividir”

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:layout_toRightOf=”@id/multiplicar”

android:layout_alignTop=”@id/sumar”

android:onClick=”cDividir”

android:text=”/” />

<TextView

android:id=”@+id/texto_resultado”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:layout_below=”@id/dividir”

android:text=”Resultado:”/>

<TextView

android:id=”@+id/resultado”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:layout_below=”@id/texto_resultado”

android:text=”Realice operación para obtener resultado”/>

<TextView
android:id=”@+id/by”
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:layout_alignLeft=”@+id/texto_resultado”
android:layout_alignParentBottom=”true”
android:layout_marginBottom=”46dp”
android:text=”Apk by yuniels” />

</RelativeLayout>

Los atributos relevantes para este ejemplo de cada elemento son:

  • android:id identificador de cada objeto
  • android:layout_width y android:layout_height, anchura y altura respectivamente
  • android:layout_below: indica si el objeto está debajo de otro
  • android:layout_toRightOf y android:layout_alignTop: indican si están varios elementos en la misma fila sobre qué objeto se coloca a su derecha y su posicionamiento en altura
  • android:text es el texto por defecto en cada elemento
  • android:onClick es el nombre del método público a ejecutar al pulsar ese botón. Este método debe ser obligatoriamente público y tener como parámetro de entrada la vista, ejemplo public void function cSumar(View view) { … }.

ahora vamos a programar el funcionamiento de los objetos descritos en el archivo de extensión java creado para el proyecto:

package com.example.calculadora;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.*;
import android.view.*;

public class MainActivity extends Activity {

// Instancias de objetos a usar

private double valor_a, valor_b;

private EditText op_a, op_b;

private TextView resultado;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// Asignamos los objetos

this.op_a = (EditText) findViewById(R.id.op_a);

this.op_b = (EditText) findViewById(R.id.op_b);

this.resultado = (TextView) findViewById(R.id.resultado);

}

public void cSumar(View view) {

if(this.op_a.getText().toString().length() > 0 && this.op_b.getText().toString().length() > 0) {

this.valor_a = Double.parseDouble(this.op_a.getText().toString());

this.valor_b = Double.parseDouble(this.op_b.getText().toString());

this.resultado.setText(Double.toString((this.valor_a + this.valor_b)));

}

}

public void cRestar(View view) {

if(this.op_a.getText().toString().length() > 0 && this.op_b.getText().toString().length() > 0) {

this.valor_a = Double.parseDouble(this.op_a.getText().toString());

this.valor_b = Double.parseDouble(this.op_b.getText().toString());

this.resultado.setText(Double.toString((this.valor_a – this.valor_b)));

}

}

public void cMultiplicar(View view) {

if(this.op_a.getText().toString().length() > 0 && this.op_b.getText().toString().length() > 0) {

this.valor_a = Double.parseDouble(this.op_a.getText().toString());

this.valor_b = Double.parseDouble(this.op_b.getText().toString());

this.resultado.setText(Double.toString((this.valor_a * this.valor_b)));

}

}

public void cDividir(View view) {

if(this.op_a.getText().toString().length() > 0 && this.op_b.getText().toString().length() > 0) {

this.valor_a = Double.parseDouble(this.op_a.getText().toString());

this.valor_b = Double.parseDouble(this.op_b.getText().toString());

if(this.valor_b != 0) {

this.resultado.setText(Double.toString((this.valor_a / this.valor_b)));

}

else {

this.resultado.setText(“Infinito”);

}

}

}

}

El método onCreate se ejecuta al crear la aplicación y es donde asignamos los objetos declarados en el XML a objetos Java. Tras ello declaramos las funciones definidas en los atributos onClick de cada botón.

Por último nos quedaría ejecutarlo y probar el funcionamiento.

Conclusiones

Como hemos dicho, este ejemplo de una calculadora es un ejemplo muy sencillo pero podemos ver que con un poco de código y unas pequeñas nociones sobre Android SDK podemos sacar muchísimo provecho de nuestros conocimientos sobre Java.

One thought on “Programando para Android: una sencilla aplicación

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *