laboratorio android

Upload: zealot1633

Post on 14-Apr-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 Laboratorio Android

    1/6

    Curso Taller Android Nivel I

    Laboratorio 03 Android Nivel I

    Android: Proyecto Calculadora

    I. Competencia General:

    Comprender el entorno de desarrollo de unaaplicacin en Android, utilizando el lenguaje deprogramacin Java..

    II. Requerimientos

    - IDE Eclipse (Indigo)http://developer.android.com/sdk/eclipse-adt.html

    - Android SDK (Cualquier versin)http://developer.android.com/sdk/index.html

    - Dalvik Virtual Machine (Tiene que crearlo)

    Debe configurar Eclipse para que supiera la rutahasta el SDK de Android y tendramos todopreparado para trabajar. Lo podemos hacer desde elmen Window -> Preferences y dentro de la ventanaen la pestaa Android tenemos la opcin SDKLocation

    III. Crear el workspace

    Para empezar con un nuevo proyecto debe crear unespacio de trabajo en eclipse:

    a) Crear el espacio de trabajo

    Figura 01

    b) Crear el proyecto Android

    Figura 02

    c) Asignando el nombre de Calculadora aproyecto

    Figura 03

    d) Seleccionando el SDK versin y APIDebe indicar alguna versin de Android, por ejemplo4.0.3 cuyo API es versin 15

    Figura 04

    e) Asignando el nombre del paquetemi.paquete.android

    Debe colocar 2 o 3 palabras con . que estnrelacionados con el proyecto

    Figura 05

    MSc. Daniel A. Yucra Sotomayor / Ing. Ricardo Inquilla Pag. - 1 -

  • 7/30/2019 Laboratorio Android

    2/6

    Curso Taller Android Nivel I

    f) Estructura del Proyecto

    Figura 06

    IV. Diseo del proyecto

    Antes de empezar es importante discutir cmo serla interfaz de usuario del programa.

    Elementos que participan:

    - TextView (objeto para mostrar texto),- EditText (caja de entrada de texto)- Button (botn de comando).

    Figura 07

    Evolus Pencil:

    http://pencil.evolus.vn/en-US/Home.aspx

    IV. Generando el Proyecto) Editando el mail.xml

    Para iniciar con el proyecto debe insertar loscontroles al layout (area de diseo de la aplicacin)

    Figura 08

    Importante debe colocar cada control en el layoutb) Insertando controles en el layout

    1.1 Detalles del primer Control

    Adicionar:android:id="@+id/label_a"

    Y modificar:android:text="@string/Operando A" />

    El primer control debe quedar como:

    1.2 Detalles del segundo control

    Complete insertando el resto de controles deacuerdo al diseo

    MSc. Daniel A. Yucra Sotomayor / Ing. Ricardo Inquilla Pag. - 2 -

  • 7/30/2019 Laboratorio Android

    3/6

    Curso Taller Android Nivel I

    Figura 09

    Figura 10

    Para el boton

    Figura 11

    Cdigo final en XML

  • 7/30/2019 Laboratorio Android

    4/6

    Curso Taller Android Nivel I

    android:onClick="cRestar"android:text="-"/>

    Variables utilizadas:- op_a- op_b

    - sumar- restar - multiplicar

    - dividir - texto_resultado- resultado

    Eventos:- cSumar - cRestar - cMultiplicar - cDividir

    Los atributos relevantes para este ejemplo de cadaelemento 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 estdebajo de otro

    android:layout_toRightOf yandroid:layout_alignTop : indican si estn varioselementos en la misma fila sobre qu objeto secoloca a su derecha y su posicionamiento en altura

    android:text es el texto por defecto en cadaelemento

    android:onClick es el nombre del mtodo pblico aejecutar al pulsar ese botn. Este mtodo debe serobligatoriamente pblico y tener como parmetro deentrada la vista, ejemplo public void functioncSumar(View view) { ... }.

    d) El diseo del layout queda al final de lasiguiente manera

    Figura 09

    e) Cdigo para la Actividad

    Primero:Para empezar a programar se debe importar lossiguiente paquetes a la clase:

    import android.widget.*;import android.view.*;

    Segundo:Instanciar los objetos que va utilizar:

    private double valor_a, valor_b;private EditText op_a, op_b;private TextView resultado;

    Donde:op_a y op_b son las variables del formulariovalor_a y valor_b, son las variables convertidas a

    tipo de datos Double que participaran en la claseCalculadora.

    Tercero:Asignamos 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);

    MSc. Daniel A. Yucra Sotomayor / Ing. Ricardo Inquilla Pag. - 4 -

  • 7/30/2019 Laboratorio Android

    5/6

    Curso Taller Android Nivel I

    Cuarto:Creamos cdigo para los mtodos:

    publicvoid 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)));}

    }

    Finalmente el cdigo queda de la siguiente manera:

    package mi.paquete.android;

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

    publicclass CalculadoraActivity extends Activity { /** Called when the activity is first created. */

    // Instancias de objetos a usarprivatedoublevalor_a, valor_b;private EditText op_a, op_b;private TextView resultado;

    publicvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

    setContentView(R.layout.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);}

    publicvoid 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)));

    }}

    publicvoid 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)));

    }}

    publicvoid 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)));

    }}

    publicvoid 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 mtodo onCreate se ejecuta al crear la aplicaciny es donde asignamos los objetos declarados en elXML a objetos Java. Tras ello declaramos las

    funciones definidas en los atributos onClick de cadabotn.

    publicvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    f) Ejecutando el programa

    MSc. Daniel A. Yucra Sotomayor / Ing. Ricardo Inquilla Pag. - 5 -

  • 7/30/2019 Laboratorio Android

    6/6

    Curso Taller Android Nivel I

    Figura 10

    Debe elegir el APP Calculadora para ejecutar elprograma

    Figura 11

    g) Optimizando el cdigo

    Figura 12

    Seleccione Ignore type para eliminar las precauciones

    Figura 12

    Docente: MSc. Daniel Alejandro Yucra SotomayorLima, Enero del 2012

    Consultas: [email protected]

    MSc. Daniel A. Yucra Sotomayor / Ing. Ricardo Inquilla Pag. - 6 -