Programación Android con AIDE y Java 6
Una de las metas intelectuales que establecí en mi proyecto de vida fue el de llegar a crear una base de conocimientos de la Evolución y Desarrollo Humano en mi teléfono inteligente. Para lograrlo fue necesario aprender el lenguaje java orientado a objetos y programar android con AIDE. Para seguir aprendiendo nuevos conocimientos del 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 comprender lo que es una base de conocimientos EYDH y la computadora de un teléfono inteligente y además realizar muchos ejemplos, desde los más sencillos hasta los más complicados, como los que hemos visto en los blog anteriores y el que veremos en este blog.
Base de Conocimientos EYDH
Computadora de un Teléfono Inteligente
Programación Android con AIDE y Java 1
P01 Mi Primer Programa y el de una Calculadora
Programación Android con AIDE y Java 2
P02 y Lenguaje Java Orientado a Objetos
Programación Android con AIDE y Java 3
P03_variables
P04_string
P05_entrada_salida
P06_if
Programación Android con AIDE y Java 4
P07_control_switch
P08_while
P09_for_arreglos
P10_arreglos_lista
Programación Android con AIDE y Java 5
P11_temas_lista
Programación Android con AIDE y Java 6
P12_temas_objeto
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.
P12_temas_objeto
Este ejemplo trata del manejo de nombres en general y de los nombres de un tema en específico y su descripción. En la Evolución y Desarrollo Humano hago una descripción de la secuencia en una línea del tiempo, del pasado, presente y futuro de la humanidad. El pasado se inicia con la evolución física, biológica y social, el presente de la vida actual de todo ser humano y el futuro de los hechos que pueden suceder de forma catastrófica y aleatoria y que puedan afectar a la humanidad. Cada secuencia en el tiempo considero un tema fundamental con un nombre y una descripción, así en la evolución física inicio con el tema de un principio, continúo con las cuerdas y membranas, gran explosión, partículas fundamentales, gravitón, quarks, núcleo atómico, electrones, átomo, moléculas, gas y polvo cósmico, galaxias, universo, sistema solar, tierra, etc. Continúa los temas de la evolución biológica y social. Los temas del presente y del futuro. Todos los temas con su nombre y descripción. El programa maneja los temas en el teléfono inteligente tal como el Galaxi mini que tiene el sistema operativo android2.2.
Este programa trata los temas como un objeto y se define como la clase de Temas con su nombre y descripción, se puede ver como el uso de la programación orientada a objetos de Java, facilita el manejo de varios datos, creando registros que pueden almacenarse en un solo archivo. El programa también captura tema por tema, cada tema se agrega a una lista que puede desplegarse en la pantalla, cada tema puede modificarse y eliminarse, la lista de temas se puede guardar en un archivo y posteriormente se pueda recuperar la lista de temas del archivo.
Creamos un nuevo proyecto P12_temas_objeto, en modulo ponemos com.gri.p12 presionamos el folder src y vamos al programa MainActivity.java presionamos Archivos y creamos un nuevo archivo con el nombre de Temas.java editamos e introducimos el siguiente programa para crear la clase de Temas.
package com.gri.p12;
public class Temas
{
private String nomb;
private String desc;
public Temas(String nomb, String desc){
this.nomb = nomb;
this.desc = desc;
}
public void ponNomb(String nomb){
this.nomb = nomb;
}
public String obtenNomb(){
return nomb;
}
public void ponDesc(String desc){
this.nomb = desc;
}
public String obtenDesc(){
return desc;
}
}//class
Ahora vamos al programa MainActivity.java editamos e introducimos el siguiente programa.
package com.gri.p12;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.view.View.OnClickListener;
import java.util.ArrayList;
import java.util.*;
import android.graphics.Color;
import java.io.*;
import android.content.Context;
import android.text.method.*;
public class MainActivity extends Activity implements OnClickListener
{
Button b1, b2, b3, b4, b5, b6, b7, b8;
EditText et1;
TextView tv2;
//String t1 para captar temas de et1
String t1, t2, t3;
//Arreglo lista para guardar temas
ArrayList<String> lista = new ArrayList<String>();
ArrayList<String> lista1 = new ArrayList<String>();
ArrayList<Temas> lista2 = new ArrayList<Temas>();
//Para controlar menu
int idx1, idx6, idx7, idx8 = -1;
int cont1, cont6, cont7, cont8 = 0;
// Called when the activity is first created.
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
//ScrollView sv = new ScrollView(this);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
TextView tv = new TextView(this);
tv.setText("Temas");
tv.setTextSize(20);
//tv.setTypeface(Typeface.BOLD);
tv.setTextColor(Color.CYAN);
tv.setGravity(0x01);
ll.addView(tv);
LinearLayout ll1 = new LinearLayout(this);
ll1.setOrientation(LinearLayout.HORIZONTAL);
b1 = new Button(this);
b1.setText(" Introd ");
ll1.addView(b1);
b2 = new Button(this);
b2.setText(" Borra ");
ll1.addView(b2);
b3 = new Button(this);
b3.setText("Guarda");
ll1.addView(b3);
b4 = new Button(this);
b4.setText("Recupe ");
ll1.addView(b4);
ll.addView(ll1);
LinearLayout ll2 = new LinearLayout(this);
ll2.setOrientation(LinearLayout.HORIZONTAL);
b5 = new Button(this);
b5.setText(" ListaAr ");
b5.setTextColor(Color.BLUE);
ll2.addView(b5);
b6 = new Button(this);
b6.setTextColor(Color.BLUE);
b6.setText("Modi_n");
ll2.addView(b6);
b7 = new Button(this);
b7.setTextColor(Color.BLUE);
b7.setText("Modi_d");
ll2.addView(b7);
b8 = new Button(this);
b8.setTextColor(Color.BLUE);
b8.setText("Elimina ");
ll2.addView(b8);
ll.addView(ll2);
et1 = new EditText(this);
et1.setText("Bienvenido al programa de temas");
ll.addView(et1);
tv2 = new TextView(this);
tv2.setTextColor(Color.GREEN);
tv2.setMovementMethod(ScrollingMovementMethod.getInstance());
//tv2.setBackgroundColor(Color.BLACK);
tv2.append(" MENU\n");
tv2.append("Introd - Introduce temas en ventana de texto\n");
tv2.append("Borra - Borra ventana de texto\n");
tv2.append("Guarda - Guarda un archivo lista de temas\n");
tv2.append("Recupe - Recupera archivo lista de temas\n");
tv2.append("ListaAr - Despliega lista de temas\n");
tv2.append("Modi_n - Modifica nombre del tema\n");
tv2.append("Modi_d - Modifica descripcion del tema\n");
tv2.append("Elimina - Elimina nombre y descrip. del tema\n");
ll.addView(tv2);
setContentView(ll);
//sv.addView(ll);
//setContentView(sv);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
b3.setOnClickListener(this);
b4.setOnClickListener(this);
b5.setOnClickListener(this);
b6.setOnClickListener(this);
b7.setOnClickListener(this);
b8.setOnClickListener(this);
}
//@Override
public void onClick(View view){
if(view == b1){
//tv2.setText("");
//t2 = "";
t1 = et1.getText().toString();
switch(cont1) {
case 0:
et1.setText("Borra e introd. nombre del tema");
cont6 = cont7 = cont8 = 0;
cont1++;
break;
case 1:
if(!t1.equals(" ")){
boolean duplicado = false;
Iterator items = lista2.iterator();
while(items.hasNext()){
Temas tema2 =(Temas)items.next();
if (tema2.obtenNomb().equalsIgnoreCase(t1)){
duplicado = true;
}
}
if(!duplicado){
tv2.append("Tema: "+t1+"\n");
//Guarda t1 en t2
t2 = t1;
et1.setText("Borra e introd. descripcion del tema");
cont1++;
break;
}else{
et1.setText("Tema Duplicado...presiona Intro");
cont1 = 0;
break;
}
}else{
et1.setText("Espacios...presiona Intro");
cont1 = 0;
break;
}
case 2:
//Capta de et1 tema
//t1 = et1.getText().toString();
//Verifica si es un tema
if(!t1.equals(" ")){
//tv2.append("Desc: "+t1+"\n");
//Agrega tema a lista1
Temas temas1 = new Temas(t2, t1);
lista2.add(temas1);
//lista.add(t2);
//lista1.add(t1);
et1.setText("Fin de la captura del temal");
lista22();
//lista();
cont1 = 0;
break;
}else{
et1.setText("Espacios...Introduce tema\n");
cont1 = 0;
break;
}
}//switch
}//b1
if(view == b2){
//Limpia ventana et1
et1.setText(" ");
}//b2
if(view == b3){
//Verifica que lista no este vacia
if(!lista2.isEmpty()){
tv2.setText("");
//Crea y guarda archivo interno
try{
OutputStreamWriter osw1 = new OutputStreamWriter(
openFileOutput("temas.txt", Context.MODE_PRIVATE));
tv2.append("Crear archivo lista nombres de temas: "+"\n");
Iterator items = lista2.iterator();
while(items.hasNext()){
Temas temas2 =(Temas)items.next();
osw1.write(temas2.obtenNomb()+"##"+temas2.obtenDesc()+"\n");
}
osw1.close();
tv2.append("Archivo lista de temas creado...\n");
}catch(Exception ex){
tv2.append("Error al crear archivo...\n");
}
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b3
if(view == b4){
//Verifica que lista no este vacia
//if(!lista.isEmpty()){
tv2.setText("");
lista2.clear();
//Recupera archivo de temas
try{
BufferedReader br1 = new BufferedReader(new InputStreamReader
(openFileInput("temas.txt")));
tv2.append("Recupera archivo de lista de temas: \n");
String lt1;
while((lt1 = br1.readLine()) != null){
String lt2[] = lt1.split("##");
String nomb2 = lt2[0];
String desc2 = lt2[1];
Temas temas2 = new Temas(nomb2, desc2);
lista2.add(temas2);
}
br1.close();
}catch(Exception ex){
tv2.append("Error de lectura...\n");
}
lista22();
//}else{
//tv2.setText("");
//tv2.append("Lista de temas esta vacia...");
//}//empty
}//b4
//Lista
if(view == b5){
//Verifica que lista no este vacia
if(!lista2.isEmpty()){
lista22();
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b5
//Modifica nombre del tema
if(view == b6){
if(!lista2.isEmpty()){
t1 = et1.getText().toString();
switch(cont6){
case 0:
et1.setText("Introduce nombre a modificar");
//t1 = "";
//idx6 = -1;
cont1 = cont7 = cont8 = 0;
cont6++;
break;
case 1:
Iterator items = lista2.iterator();
while(items.hasNext()){
Temas temas2 =(Temas)items.next();
if(temas2.obtenNomb().equals(t1)){
idx6 = lista2.indexOf(temas2);
t2 = "";
t3 = "";
t2 = temas2.obtenNomb();
t3 = temas2.obtenDesc();
}
}
if(idx6 == -1){
et1.setText("Nombre no existe...presiona Elimina");
cont6 = 0;
break;
}
cont6++;
et1.setText("Introduce nombre de tema nuevo");
break;
case 2:
if(!t1.equals(" ")){
boolean duplicado = false;
Iterator items1 = lista2.iterator();
while(items1.hasNext()){
Temas tema2 =(Temas)items1.next();
tv2.append("Nomb: "+tema2.obtenNomb()+"t1: "+t1+"\n");
if (tema2.obtenNomb().equalsIgnoreCase(t1)){
duplicado = true;
}
}
if(duplicado){
et1.setText("Tema Duplicado...presiona Modi_n");
cont6 = 0;
break;
}
Iterator items2 = lista2.iterator();
while(items2.hasNext()){
Temas temas2 =(Temas)items2.next();
if(temas2.obtenNomb().equals(t2)){
idx6 = lista2.indexOf(temas2);
}
}
if(idx6 == -1){
et1.setText("Nombre no existe...presiona Elimina");
cont6 = 0;
break;
}
lista2.remove(idx6);
Temas temax = new Temas(t1,t3);
lista2.add(temax);
et1.setText("Modificacion de nombre ok...");
cont6 = 0;
break;
}else{
et1.setText("Espacios...presiona Modi_n");
cont6 = 0;
break;
}
}//switch
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b6
Vistas de página en total
sábado, 29 de septiembre de 2012
Programación Android con AIDE y Java 6b
//Modifica descripcion del tema
if(view == b7){
if(!lista2.isEmpty()){
t1 = et1.getText().toString();
switch(cont7){
case 0:
et1.setText("Introduce nombre del tema");
idx7 = -1;
cont1 = cont6 = cont8 = 0;
cont7++;
break;
case 1:
Iterator items = lista2.iterator();
while(items.hasNext()){
Temas temas2 =(Temas)items.next();
if(temas2.obtenNomb().equals(t1)){
idx7 = lista2.indexOf(temas2);
t2 = "";
t3 = "";
t2 = temas2.obtenNomb();
t3 = temas2.obtenDesc();
}
}
if(idx7 == -1){
et1.setText("Nombre no existe...presiona Elimina");
cont7 = 0;
break;
}
cont7++;
et1.setText("Introduce descripcion tema nuevo");
break;
case 2:
if(!t1.equals(" ")){
Iterator items2 = lista2.iterator();
while(items2.hasNext()){
Temas temas2 =(Temas)items2.next();
if(temas2.obtenNomb().equals(t2)){
idx7 = lista2.indexOf(temas2);
}
}
if(idx7 == -1){
et1.setText("Nombre no existe...presiona Modi_d");
cont7 = 0;
break;
}
lista2.remove(idx7);
Temas temax = new Temas(t2,t1);
lista2.add(temax);
et1.setText("Modificacion de descripcion ok...");
cont7 = 0;
break;
}else{
et1.setText("Espacios...presiona Modi_d");
cont7 = 0;
break;
}
}//switch
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b7
//Elimina nombre y descripcion del tema
if(view == b8){
if(!lista2.isEmpty()){
t1 = et1.getText().toString();
switch(cont8){
case 0:
et1.setText("Introduce nombre a eliminar");
//t1 = "";
idx8 = -1;
cont1 = cont6 = cont7 = 0;
cont8++;
break;
case 1:
//lista2.remove(1);
//cont8 = 0;
//break;
Iterator items = lista2.iterator();
while(items.hasNext()){
Temas temas2 =(Temas)items.next();
//tv2.append("Nomb: "+temas2.obtenNomb()+"t1: "+t1+"\n");
if(temas2.obtenNomb().equals(t1)){
//tv2.append("Nomb: "+temas2.obtenNomb()+"t1: "+t1+"\n");
idx8 = lista2.indexOf(temas2);
//lista2.remove(idx8);
tv2.append("idx8: "+idx8+"\n");
}
}
if(idx8 == -1){
et1.setText("Nombre no existe...presiona Elimina");
cont8 = 0;
break;
}
lista2.remove(idx8);
et1.setText("Tema eliminado");
tv2.setText("");
tv2.append("Tema eliminado..."+t1+"\n");
//tv2.append("idx88: "+idx8+"\n");
cont8 = 0;
break;
}//switch
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b8
}//on click
public void lista22(){
tv2.setText("");
Iterator items = lista2.iterator();
while(items.hasNext()){
Temas temas2 =(Temas)items.next();
//s+= "\n" + alumno.getNombre()
tv2.append(temas2.obtenNomb()+"\n"+temas2.obtenDesc()+"\n");
//s+= "\n" + alumno.getInfo();
}
}//lista2
}//class
Como se explico en el proyecto P03_variables, vamos a compilar, instalar y ejecutar el proyecto y obtenemos los resultados deseados.
Captura de Temas
Guardar Archivo de Temas
Recuperar Archivo de Temas
Modificar Temas
Eliminar Temas
if(view == b7){
if(!lista2.isEmpty()){
t1 = et1.getText().toString();
switch(cont7){
case 0:
et1.setText("Introduce nombre del tema");
idx7 = -1;
cont1 = cont6 = cont8 = 0;
cont7++;
break;
case 1:
Iterator items = lista2.iterator();
while(items.hasNext()){
Temas temas2 =(Temas)items.next();
if(temas2.obtenNomb().equals(t1)){
idx7 = lista2.indexOf(temas2);
t2 = "";
t3 = "";
t2 = temas2.obtenNomb();
t3 = temas2.obtenDesc();
}
}
if(idx7 == -1){
et1.setText("Nombre no existe...presiona Elimina");
cont7 = 0;
break;
}
cont7++;
et1.setText("Introduce descripcion tema nuevo");
break;
case 2:
if(!t1.equals(" ")){
Iterator items2 = lista2.iterator();
while(items2.hasNext()){
Temas temas2 =(Temas)items2.next();
if(temas2.obtenNomb().equals(t2)){
idx7 = lista2.indexOf(temas2);
}
}
if(idx7 == -1){
et1.setText("Nombre no existe...presiona Modi_d");
cont7 = 0;
break;
}
lista2.remove(idx7);
Temas temax = new Temas(t2,t1);
lista2.add(temax);
et1.setText("Modificacion de descripcion ok...");
cont7 = 0;
break;
}else{
et1.setText("Espacios...presiona Modi_d");
cont7 = 0;
break;
}
}//switch
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b7
//Elimina nombre y descripcion del tema
if(view == b8){
if(!lista2.isEmpty()){
t1 = et1.getText().toString();
switch(cont8){
case 0:
et1.setText("Introduce nombre a eliminar");
//t1 = "";
idx8 = -1;
cont1 = cont6 = cont7 = 0;
cont8++;
break;
case 1:
//lista2.remove(1);
//cont8 = 0;
//break;
Iterator items = lista2.iterator();
while(items.hasNext()){
Temas temas2 =(Temas)items.next();
//tv2.append("Nomb: "+temas2.obtenNomb()+"t1: "+t1+"\n");
if(temas2.obtenNomb().equals(t1)){
//tv2.append("Nomb: "+temas2.obtenNomb()+"t1: "+t1+"\n");
idx8 = lista2.indexOf(temas2);
//lista2.remove(idx8);
tv2.append("idx8: "+idx8+"\n");
}
}
if(idx8 == -1){
et1.setText("Nombre no existe...presiona Elimina");
cont8 = 0;
break;
}
lista2.remove(idx8);
et1.setText("Tema eliminado");
tv2.setText("");
tv2.append("Tema eliminado..."+t1+"\n");
//tv2.append("idx88: "+idx8+"\n");
cont8 = 0;
break;
}//switch
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b8
}//on click
public void lista22(){
tv2.setText("");
Iterator items = lista2.iterator();
while(items.hasNext()){
Temas temas2 =(Temas)items.next();
//s+= "\n" + alumno.getNombre()
tv2.append(temas2.obtenNomb()+"\n"+temas2.obtenDesc()+"\n");
//s+= "\n" + alumno.getInfo();
}
}//lista2
}//class
Como se explico en el proyecto P03_variables, vamos a compilar, instalar y ejecutar el proyecto y obtenemos los resultados deseados.
Captura de Temas
Guardar Archivo de Temas
Recuperar Archivo de Temas
Modificar Temas
Eliminar Temas
Suscribirse a:
Entradas (Atom)