UNIVERSIDAD SAN JOSEFACULTAD DE INGENIERIA
PROGRAMACION PARA DISPOSITIVOS MOVILES GUIA DE LABORATORIO N 1
PROGRAMACION BASICA SOBRE SMART PHONES ANDROID Objetivos: *Conocer
el entorno de programacin del IDE Android Studio para programacin
bajo el sistema Android. *Hacer una nueva aplicacin en Android que
utilice los controles: TextView, EditText y Button. Interactuando
con la interfaz grfica mediante mtodos y eventos. Adems de ejecutar
un intent de forma implcita. *Ejecutar la aplicacin mediante un
Dispositivo Virtualizado(AVD) o con un dispositivo
activo(Smartphone que tenga Sistema operativo android)
Contenido Crear el primer proyecto en Android Studio1 Crear
Dispositivo Mvil Virtualizado y dejarlo corriendo4 Creacin de una
segunda aplicacin y reconocimiento del entorno del IDE9 Escoger
emulador11 Creacion de Interfaz Grafica12 Agregar
recursos(variables string)13 Asociar controles con los recursos15
Modificacin de Aplicacin17 Corra su aplicacin en el Dispositivo
Virtualizado que creamos al inicio22 Correrlo en su Dispositivo22
Anexo1:Teclas Rpidas para el emulador Android24 Anexo 2 cdigo
fuente del MainActivity.java25 Anexo 3 Cdigo del archivo layout
activity_main.xml29 Anexo 4 cdigo fuente del archivo de recursos
string.xml33
Crear el primer proyecto en Android Studio Entre al Entorno
Integrado de Desarrollo(IDE) Android Studio(Boton de inicio,
Android Studio) y presione clic en Start a new Android Studio
Project Presionamos Next y definimos el nombre de la aplicacin del
Proyecto y del Paquete (Como su carnet on 01 al final), como se
muestra a continuacin. Presionamos Next Seleccionamos el SDK(API8)
mnimo al que correr nuestra aplicacin Presionamos Next
Seleccionamos Blank Activity(Activity en Blanco) Cambiamos el
titulo por Hola Mundo Y presionamos Finish Con lo anterior se
cargara el IDE con una ventana de tips como la siguiente Si no
deseamos ver tips cada vez que se cargue el entorno, desmarcamos el
botn de chequeo que se muestra y presionamos close. Crear
Dispositivo Mvil Virtualizado y dejarlo corriendo (esto demora
mucho tiempo, por eso se recomienda hacerlo en guas posteriores al
inicio). Requisitos: 3.7pulgadas, resolucin 480 X 800 Presionar
clic en el AVD Manager Ponerle por nombre su carnet y
API_8(carnet_API_8) Presionar el botn de play para ejecutar el
dispositivo Este proceso puede durar hasta 5 minutos dependiendo de
su equipo Si le aparece esta imagen, arrastre el candado hacia
arriba Luego presione clic en ok
Al finalizar aparecer un dispositivo como el que se muestra,
arrastre el mouse como se muestra para ver los otros apps Con lo
anterior aparecer la siguiente pantalla
Mantenga esta ventana abierta y pase al IDE Android Studio
Correr la aplicacin Hola mundo en el dispositivo emulado Presione
clic en Run app Presionar clic en OK ya que el dispositivo esta
corriendo Nota: Podemos chequear la opcin de Usar el mismo
dispositivo para futuros lanzamientos de aplicaciones Aparecer como
se muestra Creacin de una segunda aplicacin y reconocimiento del
entorno del IDE Cree otro proyecto con el nombre carnet02 Con ttulo
del activity: Primera app Luego de crear la app, vamos a tener los
siguientes objetos en el IDE Reconocimiento del Entorno Arbol de
objetos de proyecto en Android Descripcion
Se trabajara en esta guia tres elementos, Programa(archivo con
extension java) en MainActivity.java(1), Interfaz grafica
activity_main.xml(2) y un archivo de configuracion de algunos
permisos(de ser necesario) llamado AndroidManifest.xml(3) Se
utilizara ademas un archivo de recursos llamado string.xml(4) para
definir variables utiles para su interfaz grafica.
Otros elementos Descripcion
Se trabajara el diseo de las interfaces graficas mediante el
arrastre de elementos de la paleta(1) hacia la pantalla de
diseo(2)
Para tener una mejor vista de la pantalla de diseo, podemos
presionar el icono zoom in Escoger emulador Creacion de Interfaz
Grafica Indicaciones: Hacer una interfaz que contenga ademas del
textview de hello world(etiqueta), cuatro botones y editview como
se muestran Nota: use la paleta para arrastrar los
widgets(controles) Como se puede ver aparece un foco amarillo en
los controles de botn de comando indicando que hay una advertencia,
esta es debido a que no existe una variable de recursos asociada a
la propiedad text de los objetos. Si se desea que el primer botn
diga intento, los tres editView digan sumando1, sumando2 y sumando3
. Tendremos que modificar el archivo de recursos string.xml y luego
cambiar la propiedad text para direccionar el contenido hacia esos
recursos. Agregar recursos(variables string) Primera forma Agregue
los recursos, ir a carpeta res, values, string.xml(a la izquierda)
luego presione open editor. Utilizando el signo + agregue las
variables que se le muestran Pngale en name boton1 y en default
value Intent Repita lo anterior para los siguientes valores name
Value
boton1 Intent
boton2 Sum1
boton3 Sum2
boton4 Sum3
parametro1 Sumando 1
parametro2 Sumando 2
parametro3 Sumando 3
En modo visual usted vera que le queda una lista como sigue:
Segunda Forma Presione doble clic en la pestaa interior string.xml
y digite lo que est en la imagen: De cualquiera de las formas que
la haya hecho, se recomienda que guarde su archivo en este momento.
Asociar controles con los recursos Seleccione el activiti_main.xml
y Presione clic en button1(1) luego presione clic en los puntos
suspensivos de la propiedad text(2) Seleccione el recurso
boton1(button1) y clic en OK Vera como cambia la interfaz grafica y
la propiedad text: @string/boton1 Repita lo anterior para las
propiedades hint y text de los siguientes controles
Objeto(interfaz) propiedad Valor
button2 text @string/boton2
button3 text @string/boton3
button4 text @string/boton4
TextField1 hint @string/parametro1
TextField2 hint @string/parametro2
TextField3 hint @string/parametro3
Si no lo quiere hacer de manera visual, hgalo directamente
digitando el nombre del recurso en la propiedad requerida. Al
finalizar vera su interfaz grafica similar a esta: . Modificacin de
Aplicacin Entre a la aplicacin MainActivity.java y vera algo como
lo siguiente: Modifique el cdigo hasta que aparezca como el
siguiente. Nota: Presione click en la opcin del foco rojo que
sugiere que se implementen los mtodos. Con esto el ide Eclipse debe
de haber generado el mtodo onClic pada sobreescribirlo. Preguntas:
Por qu tiene punto y coma la ltima lnea de comando? Es un error?
Agregue la definicin del mtodo de ejecucin para todos los botones
al click Creacin de Cdigo para ejecutar desde los botones Bajo el
mismo paquete que esta el MainActivity, agregue una nueva
clase(clic derecho en el paquete, new , class ) que se llame
Mtodos. Y digtele el cdigo siguiente: A continuacin vuelva al
MainActivity.java y digite el cdigo siguiente;
Corra su aplicacin en el Dispositivo Virtualizado que creamos al
inicio Correrlo en su Dispositivo Si desea correrlo en su
dispositivo directamente, deber seguir las siguientes indicaciones:
a- Entre a opcin Run.. b- Edit Configurations c- Conecte su
dispositivo a la Pc d- Seleccione El dispositivo destino(Target
device) como USB e- y Run
Anexo1:Teclas Rpidas para el emulador Android Emulated Device
Key Keyboard Key
Home HOME
Menu (left softkey) F2 or Page-up button
Star (right softkey) Shift-F2 or Page Down
Back ESC
Call/dial button F3
Hangup/end call button F4
Search F5
Power button F7
Audio volume up button KEYPAD_PLUS, Ctrl-F5
Audio volume down button KEYPAD_MINUS, Ctrl-F6
Camera button Ctrl-KEYPAD_5, Ctrl-F3
Switch to previous layout orientation (for example, portrait,
landscape) KEYPAD_7, Ctrl-F11
Switch to next layout orientation (for example, portrait,
landscape) KEYPAD_9, Ctrl-F12
Toggle cell networking on/off F8
Toggle code profiling F9 (only with -trace startup option)
Toggle fullscreen mode Alt-Enter
Toggle trackball mode F6
Enter trackball mode temporarily (while key is pressed)
Delete
DPad left/up/right/down KEYPAD_4/8/6/2
DPad center click KEYPAD_5
Onion alpha increase/decrease KEYPAD_MULTIPLY(*) /
KEYPAD_DIVIDE(/)
Anexo 2 cdigo fuente del MainActivity.java import
android.content.Intent; import
android.support.v7.app.ActionBarActivity; import android.os.Bundle;
import android.view.Menu; import android.view.MenuItem; import
android.view.View; import android.widget.Button; import
android.widget.EditText; import android.widget.TextView; public
class MainActivity
extends ActionBarActivity { Button btnEjecutarActividad; Button
btnEjecutarMetodo1; Button btnEjecutarMetodo2; Button
btnEjecutarMetodo3; TextView lblEtiqueta; EditText edtParametro1;
EditText edtParametro2; EditText edtParametro3;
String sumastr; @Override protected void onCreate(Bundle
savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); btnEjecutarActividad=
(Button) findViewById(R.id.button1); btnEjecutarMetodo1= (Button)
findViewById(R.id.button2); btnEjecutarMetodo2= (Button)
findViewById(R.id.button3); btnEjecutarMetodo3= (Button)
findViewById(R.id.button4); lblEtiqueta=(TextView)
findViewById(R.id.textView); edtParametro1=(EditText)
findViewById(R.id.editText); edtParametro2=(EditText)
findViewById(R.id.editText2); edtParametro3=(EditText)
findViewById(R.id.editText3); View.OnClickListener onclick = new
View.OnClickListener() { @Override public void onClick(View v) {
int numint1,numint2,numint3; float numfloat1,numfloat2,numfloat3;
switch(v.getId()){ case R.id.button1: Intent intent=new
Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_TEXT,"This
is my text to send."); intent.setType("text/plain");
startActivity(intent); break; case R.id.button2: //dos parametros
flotantes
numfloat1=(float)Float.valueOf(edtParametro1.getText().toString());
numfloat2=(float)Float.valueOf(edtParametro2.getText().toString());
sumastr=Metodos.suma(numfloat1,numfloat2);
lblEtiqueta.setText(sumastr); break; case R.id.button3: //tres
parametros flotantes
numfloat1=(float)Float.valueOf(edtParametro1.getText().toString());
numfloat2=(float)Float.valueOf(edtParametro2.getText().toString());
numfloat3=(float)Float.valueOf(edtParametro3.getText().toString());
sumastr=Metodos.suma(numfloat1,numfloat2,numfloat3);
lblEtiqueta.setText(sumastr); break; case R.id.button4: //tres
parametros enteros
numint1=(int)Integer.valueOf(edtParametro1.getText().toString());
numint2=(int)Integer.valueOf(edtParametro2.getText().toString());
numint3=(int)Integer.valueOf(edtParametro3.getText().toString());
sumastr=Metodos.suma(numint1,numint2,numint3);
lblEtiqueta.setText(sumastr); break; } } };
btnEjecutarActividad.setOnClickListener(onclick);
btnEjecutarMetodo1.setOnClickListener(onclick);
btnEjecutarMetodo2.setOnClickListener(onclick);
btnEjecutarMetodo3.setOnClickListener(onclick); } @Override public
boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this
adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu); return true; }
@Override public boolean onOptionsItemSelected(MenuItem item) { //
Handle action bar item clicks here. The action bar will //
automatically handle clicks on the Home/Up button, so long // as
you specify a parent activity in AndroidManifest.xml. int id =
item.getItemId(); //noinspection SimplifiableIfStatement if (id ==
R.id.action_settings) { return true; } return
super.onOptionsItemSelected(item); } } Anexo 3 Cdigo del archivo
layout activity_main.xml Anexo 4 cdigo fuente del archivo de
recursos string.xml Carnet02 Hello world! Settings Intent Sum1 Sum3
Sum2 Sumando 1 Sumando 2 Sumando 1 1 1 19