Вы находитесь на странице: 1из 19

INTITUTO TECNOLOGICO

MARCELO QUIROGA SANTA CRUZ


CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
GUIA DE LABORATORIO I

CAPTURA DEL CLIC DE UN BOTÓN


Problema:

Realizar un programa para que cargue dos números en controles de tipo


EditText. Mostrar un mensaje que solicite la carga de los valores. Disponer un
Button para sumar los dos valores ingresados. Mostrar el resultado en un tercer
TextView. La interfaz visual debe quedar algo semejante a esto:

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
Veamos paso a paso como creamos la interfaz visual de nuestro programa.
Primero borramos el TextView que aparece por defecto cuando se crea un
proyecto con el ADT.

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B

También puedes borrar el código del Texview (tecto seleccionado con azul) para
borrar el objeto

Ahora cambia el contenedor a un LinearLayout y define laa propiedades


principales:

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"

el código queda así:

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"

tools:context="com.example.ramiroespejo.myapplication.MainActivity">

</LinearLayout>

El resto del código lo dejaremos como esta, puesto que son atributos que indican
la ubicación donde se ensambla el objeto..

Ahora vamos a escribir código para diseñar la interfaz necesitamos dos controles
detipo EditText, un control de tipo Button y un control de tipo TextView
El código queda de la siguiente manera:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"

tools:context="com.example.ramiroespejo.myapplication.MainActivity">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Escriba el primer numero entero"
android:id="@+id/et1"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Escribe el segundo numero entero"
android:id="@+id/et2"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sumar"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Resultado"
android:id="@+id/tv1"/>
</LinearLayout>

Observe los nombres de los objetos EditText et1 y et2 y TextView tv1 son los
nombres con los que haremos referencia a estos objetos mediante código

Si en este momento ejecutamos la aplicación aparece la interfaz visual


correctamente pero cuando presionemos el botón no mostrará la suma.

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
Es fundamental una vez finalizada la interfaz visual proceder a grabarla
(icono de los diskettes) o la opción File->Save para que se actualicen los
archivos que se generan automáticamente.

Hasta ahora hemos trabajado solo con el archivo xml (activity_main.xml) donde
se definen los controles visuales de la ventana que estamos creando.
Abrimos seguidamente el archivo MainActivity.java que lo podemos ubicar en la
carpeta src:

La clase MainActivity hereda de la clase Activity. La clase Activity representa una


ventana de Android y tiene todos los métodos necesarios para crear y mostrar
los objetos que hemos dispuesto en el archivo xml.
El código fuente de la clase MainActivity.java es:
package com.javaya.proyecto002;

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu
menu) {
// Inflate the menu; this adds items to
the action bar if it is present.

getMenuInflater().inflate(R.menu.activity_main,
menu);
return true;
}

}
Como mínimo se debe sobrescribir el método onCreate heredado de la clase
Activity donde procedemos a llamar la método setContentView pasando como
referencia una valor almacenado en una constante llamada activity_main
contenida en una clase llamada layout que a su vez la contiene una clase
llamada R (veremos más adelante que el ADT se encarga de crear la clase R en
forma automática y sirve como puente entre el archivo xml y nuestra clase
MainActivity)
Luego veremos el otro método onCreateOptionsMenu.

Captura de eventos.

Ahora viene la parte donde definimos variables en java donde almacenamos las
referencias a los objetos definidos en el archivo XML.
Definimos tres variables, dos de tipo EditText y finalmente una de tipo TextView
(estas dos clases se declaran en el paquete android.widget, es necesario
importar dichas clases para poder definir las variables de dichas clases):
package com.javaya.proyecto002;

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

private EditText et1,et2;


private TextView tv3;

@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu
menu) {
// Inflate the menu; this adds items to
the action bar if it is present.

getMenuInflater().inflate(R.menu.activity_main,
menu);
return true;
}

}
La forma más fácil de importar las clases EditText y TextView es tipear las dos
líneas:
private EditText et1,et2;
private TextView tv3;
y luego presionar las teclas Control-Shift-O
Esto hace que se escriban automáticamente los dos import:
import android.widget.EditText;
import android.widget.TextView;
Los nombres que le dí a los objetos en este caso coinciden con la propiedad id
(no es obligatorio):
private EditText et1,et2;
private TextView tv3;
No definimos TextView para los dos mensajes "Ingrese el primer valor" e "Ingrese
el segundo valor" ya que no necesitaremos interactuar con ellos. También

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
veremos que el objeto de la clase Button no es necesario definir un atributo
sino que desde el archivo XML inicializaremos la propiedad OnClick.
En el método onCreate debemos enlazar estas variables con los objetos
definidos en el archivo XML, esto se hace llamando al método findViewById:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

et1=(EditText)findViewById(R.id.et1);
et2=(EditText)findViewById(R.id.et2);
tv3=(TextView)findViewById(R.id.tv3);
}
Al método findViewById debemos pasar la constante creada en la clase R
(recordemos que se crea automáticamente esta clase) el nombre de la constante
si debe ser igual con el nombre de la propiedad del objeto creado en el archivo
XML. Como la clase findViewById retorna una clase de tipo View luego debemos
utilizar el operador cast (es decir le antecedemos entre paréntesis el nombre de
la clase)
Ya tenemos almacenados en las variables las referencias a los tres objetos que
se crean al llamar al método:setContentView(R.layout.main); .
Ahora planteamos el método que se ejecutará cuando se presione el botón (el
método debe recibir como parámetro un objeto de la clase View) En nuestro
ejemplo lo llamé sumar:
package com.javaya.proyecto002;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

private EditText et1,et2;


private TextView tv3;

@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et1=(EditText)findViewById(R.id.et1);
et2=(EditText)findViewById(R.id.et2);
tv3=(TextView)findViewById(R.id.tv3);

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
}

@Override
public boolean onCreateOptionsMenu(Menu
menu) {
// Inflate the menu; this adds items to
the action bar if it is present.

getMenuInflater().inflate(R.menu.activity_main,
menu);
return true;
}

//Este método se ejecutará cuando se


presione el botón
public void sumar(View view) {

}
Debemos importar lar clase View (Control-Shift-O)
Ahora debemos ir al archivo XML e inicializar la propiedad OnClick del objeto
button1 con el nombre del método que acabamos de crear (este paso es
fundamental para que el objeto de la clase Button pueda llamar al método sumar
que acabamos de crear):

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
Finalmente implementaremos la lógica para sumar los dos valores
ingresados en los controles EditText:
public void sumar(View view) {
String valor1=et1.getText().toString();
String valor2=et2.getText().toString();
int nro1=Integer.parseInt(valor1);
int nro2=Integer.parseInt(valor2);
int suma=nro1+nro2;
String resu=String.valueOf(suma);
tv3.setText(resu);
}
Extraemos el texto de los dos controles de tipo EditText y los almacenamos en
dos variables locales de tipo String. Convertimos los String a tipo entero, los
sumamos y el resultado lo enviamos al TextView donde se muestra la suma
(previo a convertir la suma a String)
La clase completa queda entonces como:
package com.javaya.proyecto002;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

private EditText et1,et2;


private TextView tv3;

@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

et1=(EditText)findViewById(R.id.et1);
et2=(EditText)findViewById(R.id.et2);
tv3=(TextView)findViewById(R.id.tv3);
}

@Override
public boolean onCreateOptionsMenu(Menu
menu) {

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
// Inflate the menu; this adds items
to the action bar if it is present.

getMenuInflater().inflate(R.menu.activity_main,
menu);
return true;
}

//Este método se ejecutará cuando se


presione el botón
public void sumar(View view) {
String valor1=et1.getText().toString();
String valor2=et2.getText().toString();
int nro1=Integer.parseInt(valor1);
int nro2=Integer.parseInt(valor2);
int suma=nro1+nro2;
String resu=String.valueOf(suma);
tv3.setText(resu);
}

}
Si ejecutamos nuestro programa podemos ver ahora que luego de cargar dos
valores al presionar el botón aparece en el tercer TextView el resultado de la
suma de los dos EditText:

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B

PRACTICA #1
CADA EJERCICIOS TIENE UN VALOR DE 1PTS.

1. Una persona recibe un préstamo de Bs. 10.000,00 de un banco y desea saber


cuánto pagará de interés, si el banco le cobra una tasa del 27% anual.

2. Calcula el precio de un boleto de viaje, tomando en cuenta el número de kilómetros


que se van a recorrer, siendo el precio Bs/.10,50 por Km.

3. Calcular el monto a pagar en una cabina de Internet si el costo por hora es de


Bs/.1,5 y por cada 5 horas te dan una hora de promoción gratis.

4. Calcular el cambio de monedas en dólares y euros al ingresar cierta cantidad en


Bs. (tipo de cambio $= 2,150Bs, Euros: 1,45 $ ).

5. Calcular el descuento y el monto a pagar por un medicamento cualquiera en una


farmacia si todos los medicamentos tienen un descuento del 35%.

6. Calcular el nuevo salario de un empleado si obtuvo un incremento del 8% sobre su


salario actual y un descuento de 2,5% por servicios.

7. En un hospital existen 3 áreas: Urgencias, Pediatría y Traumatología. El


presupuesto anual del hospital se reparte de la siguiente manera:

Área Presupuesto

Urgencias 37%

Pediatría 42%

Traumatología 21%

Obtener la cantidad de dinero que recibirá cada área para cualquier monto
presupuestal.

8. Escriba un algoritmo que dada la cantidad de monedas de 5-10-12,5-25-50 cent y


1 Bolivar, diga la cantidad de dinero que se tiene en total.

9. Escriba un algoritmo que dado el número de horas trabajadas por un empleado y el


sueldo por hora, calcule el sueldo total de ese empleado. Tenga en cuenta que las
horas extras se pagan el doble.

10. Un constructor sabe que necesita 0,5 metros cúbicos de arena por metro cuadrado
de revoque a realizar. Hacer un programa donde ingrese las medidas de una pared

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
(largo y alto) expresada en metros y obtenga la cantidad de arena necesaria para
revocarla.

ANEXO
Estructuras De Control

Lun, 2011-03-21 14:30 — moikop

En esta nueva entrega de los tutoriales de Java dirigidos a Android, veremos


las estructuras de control. Estas son las que permiten modificarel flujo de
instrucciones de un programa. Esto nos sirve, por ejemplo, cuando necesitamos ejecutar
un comando un número de veces. En vez de escribir repetidamente la misma linea,
usaremos una estructura de control (en este caso el for, lo veremos más adelante) y así
también optimizar el programa. Para saber más de ellas continua leyendo.

Las estructuras de control, como mencionamos arriba, nos permiten cambiar el orden de
las declaraciones en nuestros programas. Hay dos tipos de estructuras de control:

1. Estructuras de selección; Nos permite ejecutar una sección específica a partir de una
condición.
2. Estructuras de iteración; Nos permite ejecutar código una determinada cantidad de
veces (un ejemplo sería el for, como mencioné en la cabecera).

Estructuras de selección
Son declaraciones que nos permiten seleccionar y ejecutar blockes específicos mientras otras
partes son ignoradas. Dependiendo de si la condición (lógica) se cumple o no.

if
"If simple", en este if, el código solamente se ejecuta si la condición se cumple. Si no se
cumple, simplemente lo ignora.

if (Condicion_Booleana)
...[Código si la condición se cumple]...;

//o...

if (Condicion_booleana) {
...[Código si la condición se cumple]...;
}
"if + else". En este if, si se cumple la condición, se ejecuta sólo el código que esta adentro
del if (no la del else). Y si no se cumple, se ejecuta la del else (y no la del if).

if (Condicion_Booleana) {
...[Código si se cumple la condición]...
} else {
...[Código si no se cumple la condición del if]...
}

// Ejemplo:

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
if (x >= 10) {
System.out.println("x es mayor o igual a 10!");
} else {
System.out.println("x es menor a 10");
}
Y finalmente, el "if + else if + [else]". En este, podemos controlar más de una excepción.
Por ejemplo, si 10 es mayor a x, si 10 es igual a x o si 10 es menor a x. En este, podremos
controlar tantas excepciones como queramos (Cuantas más excepciones controlamos,
menos posibilidad de que falle el programa hay). También, al final de todo podemos poner
un else, por si no se cumple ninguna de las condiciones previas.

if (x > 10) {
System.out.println("x es mayor a 10");
} else if (x < 10) {
System.out.println("x es menor a 10");
} else if (x == 10) {
System.out.println("x es igual a 10");
}

// Que es lo mismo a...

if (x > 10) {
System.out.println("x es mayor a 10");
} else if (x < 10) {
System.out.println("x es menor a 10");
} else {
System.out.println("x es igual a 10");
}
switch
También esta el "switch", una sentencia muy parecida al if. Esta puede manejar un número
infinito de posibilidades con más facilidad que el if.También se diferencian que la
expresión en el switch puede ser byte, char, short o int. Cuando en el if sólo bool. Cuando el
switch evalúa la expresión, busca por una constante igual a ella. Si la encuentra, ejecuta la
sentencia hasta encontrar un break. Si no encuentra ninguna equivalente, busca la linea
default. Si la encuentra, ejecuta la sentencia en ella. Sino, simplemente continúa la ejecución
del programa (como se deduce, la linea default es opcional).

Ejemplo de la declaración del switch:

switch (expresión) {
case 1:
Sentencia_1;
break;
case X:
SentenciaX;
break;
default:
Sentencia;
break;
}
Aquí un pequeño ejemplo del uso del switch:

int x = 5;
switch(x) {
case 1:
System.out.println("x vale 1");
break;
case 2:

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
System.out.println("x vale 2");
break;
case 5:
System.out.println("x vale 5");
break;
default:
System.out.println("x no es equivalente a ninguna de las
anteriores...");
break;
}
Y un snippet para que vean que el break es opcional y entiendan mejor como funciona:

System.out.print ("x es... ");


switch (x){
case 0:
System.out.print ("cero y \n");
case 2:
System.out.print ("primo y \n");
case 4:
case 6:
System.out.print ("par\n");
break;
case 1:
System.out.print ("uno e \n");
case 3:
case 5:
System.out.print ("impar\n");
break;
default:
System.out.println ("muy grande\n");
break;
}

//Code by joserc87
Estructuras de iteración
Son las que nos permiten ejecutar secciones específicas de código una cantidad determinada
de veces. De este modo, podemos optimizar la velocidad y desempeño del programa (y el
código también). Hay 3:

1. El while
2. El while-do
3. Y el for
while
El bucle while nos permite ejecutar un código determinado hasta que la condición sea falsa.
Ejemplo de declaración de un while:

while (Exprecion_booleana) {
...
}
Ejemplo de uso:

int x = 0;

while (x < 10) {


System.out.println("x = " + x);
x++;

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B
}
Ese código lo que hace es escribir el valor de x hasta que sea equivalente a 10. Una vez que
eso ocurra, se continuará normalmente con la ejecución del programa.

do-while
También esta el bucle do-while. Este bucle tiene la característica de que si la expreción del
while es falsa, el código se ejecutará una vez antes de continuar. La sintaxis de este bucle es
la siguiente:

do {
...
} while (exprecion_booleana);
Un ejemplo de su uso podría ser:

int x = 0;

do {
System.out.println("x = " + x);
x++;
} while (x < 10);
Ese código, al igual que el ejemplo del bucle while, escribirá el valor de x mientras sea
menor a 10.

Y un ejemplo de si no se cumple la expresión:

int x = 0;

do {
System.out.println("x = " + x);
x++;
while (x == 100);
Solamente escribiría "x = 0" una vez antes de continuar con el código.

for
El bucle for nos permite ejecutar un bloque de código un número determinado de veces.
Al igual que el do-while, el bucle for suele ser más compacto que un while. Sintaxis del bucle
y un ejemplo de su uso:

for (inicializacion; condición; actualizacion) {


...
}

// Ejemplo:

int i;

for (i = 0; i < 10; i++) {


System.out.println("Este bucle se ha repetido " + i + "
veces...");
}
Esas han sido las estructuras de control, ahora que ya las conocemos, podemos dar un paso
más adelante en el estudio de Java y pronto poder hacer nuestras propias aplicaciones por
nuestra propia cuenta

Lic. Ramiro Espejo


INTITUTO TECNOLOGICO
MARCELO QUIROGA SANTA CRUZ
CARRERA DE SISTEMAS INFORMATIOS – SEGUNDO B

Lic. Ramiro Espejo

Вам также может понравиться