Para seguir aprendendiendo nuevos conocimientos como el lenguaje Java, la única forma es estudiar y repetir tantas veces como sea necesario, los conceptos y fundamentos del lenguaje Java hasta comprenderlos y que se queden grabados en la mente. Un reforzamiento es realizar muchos ejemplos, desde los más sencillos hasta los más complicados, como los que continuaremos en este blog.
P07_control_switch
P08_while
P09_for_arreglos
P10_arreglos_lista
La herramienta AIDE se usa para programar Android con Java la computadora de un teléfono inteligente. AIDE significa Android Integrated Development Environmente y es un Ambiente de Desarrollo Integrado para Android con el lenguaje Java. Con este sistema se pueden desarrollar y crear programas en el mismo teléfono celular que tengan como sistema operativo android 2.2. Por lo tanto para desarrollar programas es necesario tener un teléfono inteligente o móvil celular como el que tengo, un Samsung Galaxy mini con el sistema operativo android 2.2. Para adquirir AIDE se debe usar el internet del teléfono y de conectarse al mercado o play store de android, buscar AIDE que es libre, bajarlo e instalarlo y listo se puede iniciar a programar. Es fabuloso! programar en una mano la computadora de un teléfono inteligente.
P07_control_switch
Con la instrucción If se puede hacer pruebas a varias condiciones. De un menú de opciones se introduce una opción y con un if se identifica la opción1 y se realiza alguna operación1, otro if para la siguiente opción2 se realiza otra operacion2 y así sucesivamente para todas las opciones. Todo lo anterior puede sustituir con una instrucción Switch.
Vamos a realizar un programa que despliega un menú con cuatro opciones. La primera opción realiza una suma, la segunda una resta, la tercera una multiplicación y la cuarta una división, todas las opciones usan dos datos.
Creamos un nuevo proyecto P07_switch en modulo ponemos com.gri.p07 presionamos el folder src y vamos al programa MainActivity.java editamos e introducimos el siguiente programa.
package com.gri.p07;
import android.app.*;
import android.os.*;
import android.view.*;
import android.view.View.OnClickListener;
import android.widget.*;
import android.text.method.*;
public class MainActivity extends Activity implements OnClickListener{
//Define la variable global b1 de la clase Button
Button b1;
//Define la variable global et1 de la clase EditText
EditText et1;
//Define la variable global et2 de la clase EditText
EditText et2;
//Define la variable global et3 de la clase EditText
EditText et3;
//Define la variable global tv1 de la clase TextView
TextView tv1;
@Override
public void onCreate(Bundle savedInstancesState){
super.onCreate(savedInstancesState);
//setContentView(R.layout.main);
//Ahora definimos una nueva instancia u objeto ll1 de LinearLayout.
LinearLayout ll1 = new LinearLayout(this);
//Lo definimos como Vertical.
ll1.setOrientation(LinearLayout.VERTICAL);
//Definimos una nueva instancia b1 de Button.
b1 = new Button(this);
b1.setText("Operacion");
//Agregamos Button b1 a LinearLayout ll1.
ll1.addView(b1);
//Ahora definimos una nueva instancia et1 de EditText.
et1 = new EditText(this);
et1.setText("Borra e Introduce dato1: ");
ll1.addView(et1);
//Ahora definimos una nueva instancia et2 de EditText.
et2 = new EditText(this);
et2.setText("Borra e Introduce dato2: ");
//Agregamos EditText et2 a LinearLayout ll1.
ll1.addView(et2);
//Ahora definimos una nueva instancia et3 de EditText.
et3 = new EditText(this);
et3.setText("Borra e Introduce opcion: ");
//Agregamos EditText et3 a LinearLayout ll1.
ll1.addView(et3);
//ScrollView sv = new ScrollView(this);
//Ahora definimos una nueva instancia tv1 de TextView.
tv1 = new TextView(this);
//Scroll tv1
tv1.setMovementMethod(ScrollingMovementMethod.getInstance());
//Agregamos TextView tv1 a LinearLayout ll1.
ll1.addView(tv1);
tv1.append("Menu ");
tv1.append("\n1 Suma: dato1 + dato2 ");
tv1.append("\n2 Resta: dato1 - dato2 ");
tv1.append("\n3 Multiplica: dato1 * dato2 ");
tv1.append("\n4 Divide: dato1 / dato2 ");
tv1.append("\nIntroduce opcion y datos: \n");
//Finalmente visualizamos todo el LinearLayout.
setContentView(ll1);
b1.setOnClickListener(this);
}//oncreate
public void onClick(View view){
String op = et3.getText().toString();
String d1 = et1.getText().toString();
String d2 = et2.getText().toString();
float dato1 = Float.parseFloat(d1);
float dato2 = Float.parseFloat(d2);
int opcion = Integer.parseInt(op);
/*
//Vamos a identificar y probar las diferentes opciones con If.
if(opcion == 1) {
float resultado = dato1 + dato2;
tv1.append("\nOpcion1 Suma: "+resultado);
}else{if(opcion == 2) {
float resultado = dato1 - dato2;
tv1.append("\nOpcion2 Resta: "+resultado);
}else{if(opcion == 3) {
float resultado = dato1 * dato2;
tv1.append("\nOpcion3 Multiplicar: "+resultado);
}else{ if(opcion == 4) {
float resultado = dato1 / dato2;
tv1.append("\nOpcion4 Dividir: "+resultado);
}
else tv1.append("\nOpcion Erronea: ");
}
}
}*/
//Sustituimos la instruccion If con la instruccion Switch.
switch (opcion) {
case 1:
float resultado1 = dato1 + dato2;
tv1.append("\nOpcion1 Suma: "+resultado1);
break;
case 2:
float resultado2 = dato1 - dato2;
tv1.append("\nOpcion2 Resta: "+resultado2);
break;
case 3:
float resultado3 = dato1 * dato2;
tv1.append("\nOpcion3 Multiplicar: "+resultado3);
break;
case 4:
float resultado4 = dato1 / dato2;
tv1.append("\nOpcion4 Dividir: "+resultado4);
break;
default:
tv1.append("\nOpcion Erronea " );
}
}//onclick
}//class
Como se explico en el proyecto P03_variables, vamos a compilar, instalar y ejecutar el proyecto y obtenemos los resultados deseados.
P08_while
Con la instrucción While repetimos una secuencia de instrucciones si cierta condición se cumple.
El problema que solucionaremos es de introducir un número para desplegar un mensaje por la pantalla.
Creamos un nuevo proyecto P08_while en modulo ponemos com.gri.p07 presionamos el folder src y vamos al programa MainActivity.java editamos e introducimos el siguiente programa.
package com.gri.p08;
import android.app.*;
import android.os.*;
import android.view.*;
import android.view.View.OnClickListener;
import android.widget.*;
import android.text.method.*;
public class MainActivity extends Activity implements OnClickListener{
//Define la variable global b1 de la clase Button
Button b1;
//Define la variable global et1 de la clase EditText
EditText et1;
//Define la variable global tv1 de la clase TextView
TextView tv1;
@Override
public void onCreate(Bundle savedInstancesState){
super.onCreate(savedInstancesState);
//setContentView(R.layout.main);
//Ahora definimos una nueva instancia u objeto ll1 de LinearLayout.
LinearLayout ll1 = new LinearLayout(this);
//Lo definimos como Vertical.
ll1.setOrientation(LinearLayout.VERTICAL);
//Definimos una nueva instancia b1 de Button.
b1 = new Button(this);
b1.setText("introduce");
//Agregamos Button b1 a LinearLayout ll1.
ll1.addView(b1);
//Ahora definimos una nueva instancia et1 de EditText.
et1 = new EditText(this);
et1.setText("Borra e introduce 0 < num < 100: ");
//Agregamos EditText et1 a LinearLayout ll1.
ll1.addView(et1);
//Ahora definimos una nueva instancia tv1 de TextView.
tv1 = new TextView(this);
tv1.setMovementMethod(ScrollingMovementMethod.getInstance());
//Agregamos TextView tv1 a LinearLayout ll1.
ll1.addView(tv1);
tv1.append("Introduce numero en rectangulo de texto: \n");
//Finalmente visualizamos todo el LinearLayout.
setContentView(ll1);
b1.setOnClickListener(this);
}//oncreate
public void onClick(View view){
int suma = 0;
String d1 = et1.getText().toString();
int dato = Integer.parseInt(d1);
if(dato > 100){
tv1.append("Numero "+dato+" > 100 ");
}else{
tv1.append("\nRepetir Hola: "+dato+" Veces\n");
}
while (dato > 0 && dato < 100){
tv1.append("Hola como estan:\n");
dato--;
}//while
}//onclick
}//class
Como se explico en el proyecto P03_variables, vamos a compilar, instalar y ejecutar el proyecto y obtenemos los resultados deseados.
P09_for_arreglos
La instrucción For también repite una secuencia de instrucciones si se cumple una condición, pero además tiene un contador de inicio y otra parte donde el contador se incrementa. Los arreglos definen una secuencia de datos del mismo tipo.
Vamos a solucionar un problema de arreglos utilizando una instrucción For. Teniendo un arreglo de 5 datos vamos imprimir el arreglo y después vamos a sumar 15 a cada elemento del arreglo.
Creamos un nuevo proyecto P09_for_arreglos, en modulo ponemos com.gri.p08 presionamos el folder src y vamos al programa MainActivity.java editamos e introducimos el siguiente programa.
package com.gri.p09;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
public class MainActivity extends Activity{
//Define la variable global tv1 de la clase TextView
TextView tv1;
@Override
public void onCreate(Bundle savedInstancesState){
super.onCreate(savedInstancesState);
//setContentView(R.layout.main);
//Ahora definimos una nueva instancia u objeto ll1 de LinearLayout.
LinearLayout ll1 = new LinearLayout(this);
//Lo definimos como Vertical.
ll1.setOrientation(LinearLayout.VERTICAL);
//Definimos una nueva instancia b1 de Button.
//Ahora definimos una nueva instancia tv1 de TextView.
tv1 = new TextView(this);
//Agregamos TextView tv1 a LinearLayout ll1.
ll1.addView(tv1);
tv1.append("Arreglos y for: \n");
//Finalmente visualizamos todo el LinearLayout.
setContentView(ll1);
main();
}//oncreate
public void main(){
//Definimos el arreglo con 5 datos
int datos[] = {10,20,30,40,50};
//Usamos la siguiente instrucci�n For para desplegar sus valores iniciales.
for (int i=0; i < datos.length; i++){
tv1.append("Elemento: "+i+" "+datos[i] + "\n");
}
// Ahora a cada element del arreglo le sumamos 10.
tv1.append("\nSumar 15 a cada elemento del arreglo\n");
for (int i=0; i < datos.length; i++){
datos[i] = datos[i] + 15;
tv1.append("Elemento: "+i+" "+datos[i]+"\n");
}
}//main
}//class
Como se explico en el proyecto P03_variables, vamos a compilar, instalar y ejecutar el proyecto y obtenemos los resultados deseados.
P10_arreglos_lista
Ahora utilizaremos un arreglo-lista (ArrayList) que pedirá que se introduzcan números decimales que se irán desplegando en la pantalla, para finalizar se introduce un espacio. Entonces se despliega todo el contenido del arreglo, se obtiene el promedio y el mayor número del arreglo.
Creamos un nuevo proyecto P10_arreglos_lista, en modulo ponemos com.gri.p10 presionamos el folder src y vamos al programa MainActivity.java, editamos e introducimos el siguiente programa.
package com.gri.p10;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.graphics.*;
import android.view.View.OnClickListener;
import java.util.ArrayList;
import android.content.Intent;
import android.text.method.*;
public class MainActivity extends Activity implements OnClickListener
{
Button b1;
Button b2;
EditText et1;
TextView tv2;
ArrayList<String> al1 = new ArrayList<String>();
// Called when the activity is first created.
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
LinearLayout ll1 = new LinearLayout(this);
ll1.setOrientation(LinearLayout.VERTICAL);
TextView tv1 = new TextView(this);
tv1.setText("Calculos");
tv1.setTextSize(25);
tv1.setTextColor(Color.BLUE);
tv1.setGravity(0x01);
ll1.addView(tv1);
LinearLayout ll2 = new LinearLayout(this);
ll2.setOrientation(LinearLayout.HORIZONTAL);
b1 = new Button(this);
b1.setText("Introduce dato");
ll2.addView(b1);
b2 = new Button(this);
b2.setText("Limpiar dato");
ll2.addView(b2);
ll1.addView(ll2);
et1 = new EditText(this);
ll1.addView(et1);
tv2 = new TextView(this);
tv2.setTextColor(Color.GREEN);
tv2.setMovementMethod(ScrollingMovementMethod.getInstance());
tv2.append("Introduce datos decimales: \n");
tv2.append("Para terminar introduce espacios: \n");
ll1.addView(tv2);
setContentView(ll1);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
}
public void onClick(View view){
String t1 = et1.getText().toString();
if(view == b1){
if(!t1.equals(" ")){
//Introduce datos
tv2.append("Dato "+al1.size()+":"+t1+"\n");
//Agrega dato a arreglo
al1.add(t1);
}else{
//lista arreglo de datos y obten promedio
listaArreglo();
//Obten promedio del arreglo
promedioArreglo();
//Encontrar el maximo del arreglo
maxArreglo();
}
}//b1
else{
if(view == b2){
et1.setText(" ");
}
}//b2
}//onclick
public void listaArreglo(){
int j = al1.size();
tv2.append("Lista de datos \n");
for(int i=0; i<j; i++){
tv2.append("Dato "+i+": "+al1.get(i)+"\n");
}
}//lista
public void promedioArreglo(){
float pm = 0;
int j = al1.size();
for(int i=0; i<j; i++){
float f1 = Float.parseFloat(al1.get(i));
pm = pm + f1;
}
tv2.append("Promedio de la lista de datos = "+(pm/al1.size())+"\n");
}//promedio
public void maxArreglo(){
float max = 0;
int j = al1.size();
for(int i=0; i < j; i++){
float k = Float.parseFloat(al1.get(i));
if (k > max){
max = Float.parseFloat(al1.get(i));
}
}
tv2.append("El maximo del arreglo es: " + max);
}//max
}//class
Como se explico en el proyecto P03_variables, vamos a compilar, instalar y ejecutar el proyecto y obtenemos los resultados deseados.