Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
categoras
Accesibilidad ActiveX Ajax Android Aplicacin Web (WebApp) Apps Buscadores Business Intelligence Comercio electrnico Correo Electrnico CSS ERP Flash Google Google Analytics Google Apps HTML5 Internet Internet Explorer iOS Java JavaScript jQuery Linux Marketing OnLine MySQL Navegadores Open Data Patrones PHP Redes Sociales Rendimiento
Vamos a hablar sobre como programar una aplicacin para un dispositivo con Android que se va a tratar de una sencilla calculadora. Como todos sabemos, Android se programa mediante el lenguaje de programacin Java. Este ejemplo de la calculadora puede parecer demasiado bsico, pero con una idea inicial de como hacer una pequea aplicacin para Android y nociones sobre Java, veremos que desarrollar un programa ms complejo es muy fcil. En primer lugar, necesitaremos el Android SDK que lo podemos descargar dehttp://developer.android.com/sdk/index.html Tras instalarlo deberemos ejecutar el archivo android dentro de la carpeta tools y hacer lo siguiente:
Instalar la plataforma de la versin Android a emular, lo haremos desde la pestaa Available packages y elegiremos la versin que queramos (2.1, 2.2, 2.3, etc) Crear un dispositivo virtual, pestaa 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. Podemos hacerlo desde la direccinhttp://developer.android.com/sdk/eclipse-adt.html Ahora nos quedara configurar Eclipse para que supiera la ruta hasta el SDK de Android y tendramos todo preparado para trabajar. Lo podemos hacer desde el men Window -> Preferences y dentro de la ventana en la pestaa Android tenemos la opcin 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 ms sencillo es el del "Hola Mundo" donde viene todo el proceso indicado arriba de forma ms detallada (lo podis encontrar aqu http://developer.android.com/resources/tutorials/hello-world.html).
Nosotros nos vamos a basar en uno un poco ms avanzado y lo vamos a ampliar hasta crear una aplicacin con cierta utilidad. Este ejemplo es el de como posicionar elementos con tamaos y posiciones relativas http://developer.android.com/resources/tutorials/views/hellorelativelayout.html y vamos a aadir algunos elementos y funcionalidades para crear nuestra sencilla calculadora.
donde podemos ver tres elementos: TextView (objeto para mostrar texto), EditText (caja de entrada de texto) y Button (botn).
Empezaremos creando en Eclipse un proyecto para Android, modificaremos el archivores/layout/main.xml en su vista de cdigo de fuente y pegaremos el siguiente cdigo XML:
01 <?xml version="1.0" encoding="utf-8"?> 0 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/an 2 droid" 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 android:layout_width="fill_parent" android:layout_height="fill_parent"> <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"
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
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: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 estn varios elementos en la misma fila sobre qu objeto se coloca a su derecha y su posicionamiento en altura
android:onClick es el nombre del mtodo pblico a ejecutar al pulsar ese botn. Este mtodo debe ser obligatoriamente pblico y tener como parmetro 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 extensin java creado para el proyecto:
01 package com.android.calculadora; 02 03 import android.app.Activity; 04 import android.os.Bundle; 05 import android.widget.*; 06 import android.view.*; 07 08 public class Calculadora extends Activity { 09 10 11 12 13 14 15 16 17 18 19 20 21 // Asignamos los objetos this.op_a = (EditText) findViewById(R.id.op_a); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Instancias de objetos a usar private double valor_a, valor_b; private EditText op_a, op_b; private TextView resultado;
this.op_b = (EditText) findViewById(R.id.op_b); this.resultado = (TextView) 22 findViewById(R.id.resultado); 23 24 25 public void cSumar(View view) { if(this.op_a.getText().toString().length() > 0 && 26 this.op_b.getText().toString().length() > 0) { this.valor_a = Double.parseDouble(this.op_a.getText().toString()); this.valor_b = 28 Double.parseDouble(this.op_b.getText().toString()); 27 this.resultado.setText(Double.toString((this.valor_a + this.valor_b))); 30 } 29 31 32 } }
33
public void cRestar(View view) { if(this.op_a.getText().toString().length() > 0 && 34 this.op_b.getText().toString().length() > 0) { this.valor_a = Double.parseDouble(this.op_a.getText().toString()); this.valor_b = 36 Double.parseDouble(this.op_b.getText().toString()); 35 this.resultado.setText(Double.toString((this.valor_a this.valor_b))); 38 } 37 39 40 41 public void cMultiplicar(View view) { if(this.op_a.getText().toString().length() > 0 && 42 this.op_b.getText().toString().length() > 0) { this.valor_a = Double.parseDouble(this.op_a.getText().toString()); this.valor_b = 44 Double.parseDouble(this.op_b.getText().toString()); 43 this.resultado.setText(Double.toString((this.valor_a * this.valor_b))); 46 } 45 47 48 49 public void cDividir(View view) { if(this.op_a.getText().toString().length() > 0 && 50 this.op_b.getText().toString().length() > 0) { this.valor_a = Double.parseDouble(this.op_a.getText().toString()); this.valor_b = 52 Double.parseDouble(this.op_b.getText().toString()); 51 53 if(this.valor_b != 0) { this.resultado.setText(Double.toString((this.valor_a 54 / this.valor_b))); 55 56 57 58 59 60 61 } } } } else { this.resultado.setText("Infinito"); } } }
El mtodo onCreate se ejecuta al crear la aplicacin 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 botn. Por ltimo nos quedara 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 cdigo y unas pequeas nociones sobre Android SDK podemos sacar muchsimo provecho de nuestros conocimientos sobre Java.
59 comentarios:
Otro otro al correo pavarotty_91@hotmail.com se les agradecera
Hola Carlos, seguiremos ampliando esta seccin sobre Android con el tiempo, de momento puedes revisar la seccin de ejemplos de Android http://developer.android.com/resources/browser.html?tag=tutorial Respecto al comentario de Ismael, a partir de aqu puedes hacer uso de todas las funciones matemticas de Java, por ejemplo:
comentario de Fernando - 21 de octubre de 2011 - 19:03 comentario de alejo - 25 de octubre de 2011 - 22:41
Muy bueno, gracias.
Hola Jorge, creo que deberas empezar por leerte el tutorial oficial del hello world: http://developer.android.com/resources/tutorials/hello-world.html y despus http://developer.android.com/resources/tutorials/views/index.html Saludos
Por ejemplo para hacer 2^3 sera: double resultado = Math.pow(2,3); En el caso de la raz cuadrada hay una limitacin para races cuadradas de 2 y 3 (no para radicales superiores) en el que debemos hacer uso de la funciones Math.sqrt() y Math.cbrt() respectivamente, donde previamente debers haber hecho import java.lang.Math Puedes encontrar ms informacin en http://developer.android.com/reference/java/lang/Math.html Saludos.
le cambio el nombre al id, del operando a y todo lo que esta abajo del primer textview, me lo sube, por que????
oye por que me marca error en la linea 18 donde se asignan los objetos en estos parametros(R.id.op_a) (R.id.op_b) (R.id.resultado)
Hola Diana, parece un problema de permisos, podras darle permisos de escritura al archivo que comentas?
Hola Muy Bueno, ahora tengo una duda, una vez creada y funcionando perfectamente, como la instalo en mi android, he buscado en la ruta Proyecto/bin y he encontrado Calculadora.apk , la he copiado en mi Android pero a la hora de ejecutarla no hace nada, te agradezco la ayuda
Hola Sergio, en la siguiente URL puedes encontrar ms informacin de qu hacer con los APK: http://www.pedroventura.com/software/como-instalar-un-apk-en-android/ Saludos.
} } 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"); } }} }
Hola! Muy buena, me ha servido para entender algunas cosillas de Android. Lo que no entiendo es porque tanto "this". Por no hace falta no?
la linea "if(this.valor_b != 0)" <-- no tiene sentido porque nunca sera 0 ya que en la condicion anterior has dicho que sea mayor que cero.
deja tu comentario:
Tu nombre
Tu email
Tu comentario
Enviar