Ejemplos de la
Programación Android con AIDE y Java
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 hemos visto en los blog anteriores y el que veremos en este blog.
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 hemos visto en los blog anteriores y el que veremos en este blog.
P03_variables
P04_string
P05_entrada_salida
P06_if
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.
P04_string
P05_entrada_salida
P06_if
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.
P11_nombres
Este ejemplo trata del
manejo de nombres en general y de los nombres de un tema en específico. 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 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. El programa maneja los
temas en el teléfono inteligente tal como el Galaxi mini que tiene el sistema
operativo android. El programa trata de cómo capturar tema por tema, cada tema
se agrega a una lista que puede desplegarse en la pantalla, la lista de temas se
pueda guardar en un archivo y posteriormente se pueda recuperar la lista de
temas del archivo.
Creamos un nuevo proyecto
P11_nombres, en modulo ponemos com.gri.p11 presionamos el folder src y vamos al
programa MainActivity.java editamos e introducimos el siguiente programa.
package
com.gri.p11;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.view.View.OnClickListener;
import java.util.ArrayList;
import android.graphics.Color;
import java.io.*;
import android.content.Context;
import android.text.method.*;
public class MainActivity extends Activity implements OnClickListener
{
Button b1;
Button b2;
Button b3;
Button b4;
Button b5;
EditText et1;
TextView tv2;
//String t1 para captar temas de et1
String t1;
//Arreglo lista para guardar temas
ArrayList<String> lista = new ArrayList<String>();
// 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("Intro");
ll1.addView(b1);
b2 = new Button(this);
b2.setText("Borra");
ll1.addView(b2);
b3 = new Button(this);
b3.setText("Lista");
ll1.addView(b3);
b4 = new Button(this);
b4.setText("Guard");
ll1.addView(b4);
b5 = new Button(this);
b5.setText("Recup");
ll1.addView(b5);
ll.addView(ll1);
et1 = new EditText(this);
et1.setText("Borra e introduce nombre del tema");
ll.addView(et1);
tv2 = new TextView(this);
tv2.setTextColor(Color.MAGENTA);
tv2.setMovementMethod(ScrollingMovementMethod.getInstance());
//tv2.setBackgroundColor(Color.BLACK);
tv2.append("Intro - Introduce temas en ventana de texto\n");
tv2.append("Borra - Borra ventana de texto\n");
tv2.append("Lista - Despliega lista de temas\n");
tv2.append("Guard - Guarda un archivo lista de temas\n");
tv2.append("Recup - Recupera archivo lista de temas\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);
}
public void onClick(View view){
if(view == b1){
tv2.setText("");
//Capta de et1 tema
t1 = et1.getText().toString();
//Verifica si es un tema
if(!t1.equals(" ")){
tv2.append("Tema: "+t1+"\n");
//Agrega tema a lista
lista.add(t1);
}else{
tv2.append("Espacios...Introduce un Tema...\n");
}
}//b1
if(view == b2){
//Limpia pantalla et1
et1.setText(" ");
}//b2
if(view == b3){
//Verifica que lista no esté vacía
if(!lista.isEmpty()){
tv2.setText("");
//Lista de temas
tv2.append("Lista completa de temas\n");
int j = lista.size();
for(int i=0; i<j; i++){
tv2.append("Tema"+i+": "+lista.get(i)+"\n");
}
tv2.append("Cambiar temas con set: "+lista.set(2,"NUEVO")+"\n");
tv2.append("Lista nueva completa \n");
for(int i=0; i<j; i++){
tv2.append("Tema"+i+": "+lista.get(i)+"\n");
}
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacía...");
}//empty
}//b3
if(view == b4){
//Verifica que lista no este vacia
if(!lista.isEmpty()){
tv2.setText("");
//Crea y guarda archivo interno
try{
OutputStreamWriter osw1 = new OutputStreamWriter(
openFileOutput("nombres.txt", Context.MODE_PRIVATE));
tv2.append("Crear archivo con lista de temas: "+"\n");
int j = lista.size();
for(int i=0; i<j; i++){
osw1.write(lista.get(i)+"\n");
}
osw1.close();
tv2.append("Archivo de lista de temas creado...\n");
}catch(Exception ex){
tv2.append("Error al crear archivo...\n");
}
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacía...");
}//empty
}//b4
if(view == b5){
//Verifica que lista no esté vacía
if(!lista.isEmpty()){
tv2.setText("");
//Recupera archivo interno
try{
BufferedReader br1 = new BufferedReader(new InputStreamReader
(openFileInput("nombres.txt")));
tv2.append("Recupera archivo de lista de temas: \n");
int ii = 0;
String lt2;
while((lt2 = br1.readLine()) != null){
tv2.append("Tema"+ii+": "+lt2+"\n");
ii++;
}
br1.close();
}catch(Exception ex){
tv2.append("Error de lectura...\n");
}
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b5
}//on click
}//class Como se explico en el proyecto P03_variables, vamos a compilar, instalar y ejecutar el proyecto y obtenemos los resultados deseados.
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.view.View.OnClickListener;
import java.util.ArrayList;
import android.graphics.Color;
import java.io.*;
import android.content.Context;
import android.text.method.*;
public class MainActivity extends Activity implements OnClickListener
{
Button b1;
Button b2;
Button b3;
Button b4;
Button b5;
EditText et1;
TextView tv2;
//String t1 para captar temas de et1
String t1;
//Arreglo lista para guardar temas
ArrayList<String> lista = new ArrayList<String>();
// 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("Intro");
ll1.addView(b1);
b2 = new Button(this);
b2.setText("Borra");
ll1.addView(b2);
b3 = new Button(this);
b3.setText("Lista");
ll1.addView(b3);
b4 = new Button(this);
b4.setText("Guard");
ll1.addView(b4);
b5 = new Button(this);
b5.setText("Recup");
ll1.addView(b5);
ll.addView(ll1);
et1 = new EditText(this);
et1.setText("Borra e introduce nombre del tema");
ll.addView(et1);
tv2 = new TextView(this);
tv2.setTextColor(Color.MAGENTA);
tv2.setMovementMethod(ScrollingMovementMethod.getInstance());
//tv2.setBackgroundColor(Color.BLACK);
tv2.append("Intro - Introduce temas en ventana de texto\n");
tv2.append("Borra - Borra ventana de texto\n");
tv2.append("Lista - Despliega lista de temas\n");
tv2.append("Guard - Guarda un archivo lista de temas\n");
tv2.append("Recup - Recupera archivo lista de temas\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);
}
public void onClick(View view){
if(view == b1){
tv2.setText("");
//Capta de et1 tema
t1 = et1.getText().toString();
//Verifica si es un tema
if(!t1.equals(" ")){
tv2.append("Tema: "+t1+"\n");
//Agrega tema a lista
lista.add(t1);
}else{
tv2.append("Espacios...Introduce un Tema...\n");
}
}//b1
if(view == b2){
//Limpia pantalla et1
et1.setText(" ");
}//b2
if(view == b3){
//Verifica que lista no esté vacía
if(!lista.isEmpty()){
tv2.setText("");
//Lista de temas
tv2.append("Lista completa de temas\n");
int j = lista.size();
for(int i=0; i<j; i++){
tv2.append("Tema"+i+": "+lista.get(i)+"\n");
}
tv2.append("Cambiar temas con set: "+lista.set(2,"NUEVO")+"\n");
tv2.append("Lista nueva completa \n");
for(int i=0; i<j; i++){
tv2.append("Tema"+i+": "+lista.get(i)+"\n");
}
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacía...");
}//empty
}//b3
if(view == b4){
//Verifica que lista no este vacia
if(!lista.isEmpty()){
tv2.setText("");
//Crea y guarda archivo interno
try{
OutputStreamWriter osw1 = new OutputStreamWriter(
openFileOutput("nombres.txt", Context.MODE_PRIVATE));
tv2.append("Crear archivo con lista de temas: "+"\n");
int j = lista.size();
for(int i=0; i<j; i++){
osw1.write(lista.get(i)+"\n");
}
osw1.close();
tv2.append("Archivo de lista de temas creado...\n");
}catch(Exception ex){
tv2.append("Error al crear archivo...\n");
}
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacía...");
}//empty
}//b4
if(view == b5){
//Verifica que lista no esté vacía
if(!lista.isEmpty()){
tv2.setText("");
//Recupera archivo interno
try{
BufferedReader br1 = new BufferedReader(new InputStreamReader
(openFileInput("nombres.txt")));
tv2.append("Recupera archivo de lista de temas: \n");
int ii = 0;
String lt2;
while((lt2 = br1.readLine()) != null){
tv2.append("Tema"+ii+": "+lt2+"\n");
ii++;
}
br1.close();
}catch(Exception ex){
tv2.append("Error de lectura...\n");
}
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b5
}//on click
}//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
Listado de Temas
Guardar Archivo de Temas
Recuperar Archivo de Temas
P11a_temas
El programa es una extensión del anterior y trata
de cómo capturar tema por tema y su descripción, cada tema se agrega a una
lista y cada descripción se agrega a otra lista y se manejan juntas y se despliegan
en la pantalla, la lista de temas y su
nombre, a continuación su descripción. También se pueden guardar en un archivo
los nombres de temas y en otro archivo contiene la descripción de cada tema y
posteriormente se pueda recuperarla la lista de nombre y descripción de temas
del archivo, con esto se puede ir acumulando los temas en los dos archivos y
cuando se recuperan se pueden agregarse nombres y descripción de temas nuevos.
Creamos un nuevo proyecto P11a_temas, en modulo
ponemos com.gri.p11a presionamos el folder src y vamos al programa
MainActivity.java editamos e introducimos el siguiente programa.
package com.gri.p11a;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.view.View.OnClickListener;
import java.util.ArrayList;
import android.graphics.Color;
import java.io.*;
import android.content.Context;
import android.text.method.*;
public class MainActivity extends Activity implements OnClickListener
{
Button b1;
Button b2;
Button b3;
Button b4;
Button b5;
EditText et1;
TextView tv2;
//String t1 para captar temas de et1
String t1;
//Arreglo lista para guardar temas
ArrayList<String> lista = new ArrayList<String>();
ArrayList<String> lista1 = new ArrayList<String>();
// 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("Intro");
ll1.addView(b1);
b2 = new Button(this);
b2.setText("Borra");
ll1.addView(b2);
b3 = new Button(this);
b3.setText("Lista");
ll1.addView(b3);
b4 = new Button(this);
b4.setText("Guard");
ll1.addView(b4);
b5 = new Button(this);
b5.setText("Recup");
ll1.addView(b5);
ll.addView(ll1);
et1 = new EditText(this);
et1.setText("Borra e introd. nombre del tema");
ll.addView(et1);
tv2 = new TextView(this);
tv2.setTextColor(Color.MAGENTA);
tv2.setMovementMethod(ScrollingMovementMethod.getInstance());
//tv2.setBackgroundColor(Color.BLACK);
tv2.append("Intro - Introduce temas en ventana de texto\n");
tv2.append("Borra - Borra ventana de texto\n");
tv2.append("Lista - Despliega lista de temas\n");
tv2.append("Guard - Guarda un archivo lista de temas\n");
tv2.append("Recup - Recupera archivo lista de temas\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);
}
boolean sw = true;
//@Override
public void onClick(View view){
if(view == b1){
tv2.setText("");
if(sw){
//Capta de et1 nombre del tema
t1 = et1.getText().toString();
//Verifica si no esta duplicado el tema
if(!t1.equals(" ")){
boolean duplicado = false;
for(int i=0; i<lista.size(); i++){
if(t1.equalsIgnoreCase(lista.get(i))){
duplicado = true;
break;
}
}
if(!duplicado){
tv2.append("Tema: "+t1+"\n");
//Agrega tema a lista
lista.add(t1);
et1.setText("Borra e introd. descripcion del tema");
sw = false;
}else{
tv2.append("Tema Duplicado: "+t1+"\n");
sw = true ;
}
}else{
et1.setText("Borra e introd. nombre del tema");
tv2.append("Espacios...Introduce un Tema...\n");
sw = true;
}
}else{
//Capta de et1 tema
t1 = et1.getText().toString();
//Verifica si es un tema
if(!t1.equals(" ")){
tv2.append("Desc: "+t1+"\n");
//Agrega tema a lista
lista1.add(t1);
et1.setText("Borra e introd. nombre del tema");
sw = true;
}else{
et1.setText("Borra e introd. descripcion del tema");
tv2.append("Espacios...Introduce un Tema...\n");
sw = false;
}
}//sw
}//b1
if(view == b2){
//Limpia pantalla et1
et1.setText(" ");
}//b2
if(view == b3){
//Verifica que lista no este vacia
if(!lista.isEmpty()){
tv2.setText("");
//Lista de temas
tv2.append("Lista completa de temas\n");
int j = lista.size();
int k = lista1.size();
if(j==k){
for(int i=0; i<j; i++){
tv2.append("T"+i+": "+lista.get(i)+"\n");
tv2.append("D"+i+": "+lista1.get(i)+"\n");
}
}else{
for(int i=0; i<j; i++){
tv2.append("T"+i+": "+lista.get(i)+"\n");
//tv2.append("Desc"+i+": "+lista1.get(i)+"\n");
}
for(int i=0; i<k; i++){
//tv2.append("Tema"+i+": "+lista.get(i)+"\n");
tv2.append("D"+i+": "+lista1.get(i)+"\n");
}
tv2.append("Listas nombres y descripcion de temas diferentes");
}
}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("");
//Crea y guarda archivo interno
int ii = lista.size();
int jj = lista1.size();
if(ii==jj){
try{
OutputStreamWriter osw1 = new OutputStreamWriter(
openFileOutput("nombres.txt", Context.MODE_PRIVATE));
tv2.append("Crear archivo lista nombres de temas: "+"\n");
int j = lista.size();
for(int i=0; i<j; i++){
osw1.write(lista.get(i)+"\n");
}
osw1.close();
tv2.append("Archivo lista nombres de temas creado...\n");
}catch(Exception ex){
tv2.append("Error al crear archivo...\n");
}
// Crear archivo de descripcion de temas
try{
OutputStreamWriter osw2 = new OutputStreamWriter(
openFileOutput("nombres1.txt", Context.MODE_PRIVATE));
tv2.append("Crear archivo lista descripcion de temas: "+"\n");
int j = lista1.size();
for(int i=0; i<j; i++){
osw2.write(lista1.get(i)+"\n");
}
osw2.close();
tv2.append("Archivo lista descripcion de temas creado...\n");
}catch(Exception ex){
tv2.append("Error al crear archivo...\n");
}
}else{
tv2.append("Listas nombres y descripcion de temas diferentes");
}
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b4
if(view == b5){
//Verifica que lista no este vacia
//if(!lista.isEmpty()){
tv2.setText("");
lista.clear();
lista1.clear();
//Recupera archivo de nombres de temas
try{
BufferedReader br1 = new BufferedReader(new InputStreamReader
(openFileInput("nombres.txt")));
tv2.append("Recupera archivo de lista de temas: \n");
int ii = 0;
String lt1;
while((lt1 = br1.readLine()) != null){
tv2.append("T"+ii+": "+lt1+"\n");
lista.add(lt1);
ii++;
}
br1.close();
}catch(Exception ex){
tv2.append("Error de lectura...\n");
}
//Recupera archivo de descripcion de temas
try{
BufferedReader br2 = new BufferedReader(new InputStreamReader
(openFileInput("nombres1.txt")));
tv2.append("Recupera archivo de lista de temas: \n");
int ii = 0;
String lt2;
while((lt2 = br2.readLine()) != null){
tv2.append("D"+ii+": "+lt2+"\n");
lista1.add(lt2);
ii++;
}
br2.close();
}catch(Exception ex){
tv2.append("Error de lectura...\n");
}
//}else{
//tv2.setText("");
//tv2.append("Lista de temas esta vacia...");
//}//empty
}//b5
}//on click
}//class
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.view.View.OnClickListener;
import java.util.ArrayList;
import android.graphics.Color;
import java.io.*;
import android.content.Context;
import android.text.method.*;
public class MainActivity extends Activity implements OnClickListener
{
Button b1;
Button b2;
Button b3;
Button b4;
Button b5;
EditText et1;
TextView tv2;
//String t1 para captar temas de et1
String t1;
//Arreglo lista para guardar temas
ArrayList<String> lista = new ArrayList<String>();
ArrayList<String> lista1 = new ArrayList<String>();
// 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("Intro");
ll1.addView(b1);
b2 = new Button(this);
b2.setText("Borra");
ll1.addView(b2);
b3 = new Button(this);
b3.setText("Lista");
ll1.addView(b3);
b4 = new Button(this);
b4.setText("Guard");
ll1.addView(b4);
b5 = new Button(this);
b5.setText("Recup");
ll1.addView(b5);
ll.addView(ll1);
et1 = new EditText(this);
et1.setText("Borra e introd. nombre del tema");
ll.addView(et1);
tv2 = new TextView(this);
tv2.setTextColor(Color.MAGENTA);
tv2.setMovementMethod(ScrollingMovementMethod.getInstance());
//tv2.setBackgroundColor(Color.BLACK);
tv2.append("Intro - Introduce temas en ventana de texto\n");
tv2.append("Borra - Borra ventana de texto\n");
tv2.append("Lista - Despliega lista de temas\n");
tv2.append("Guard - Guarda un archivo lista de temas\n");
tv2.append("Recup - Recupera archivo lista de temas\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);
}
boolean sw = true;
//@Override
public void onClick(View view){
if(view == b1){
tv2.setText("");
if(sw){
//Capta de et1 nombre del tema
t1 = et1.getText().toString();
//Verifica si no esta duplicado el tema
if(!t1.equals(" ")){
boolean duplicado = false;
for(int i=0; i<lista.size(); i++){
if(t1.equalsIgnoreCase(lista.get(i))){
duplicado = true;
break;
}
}
if(!duplicado){
tv2.append("Tema: "+t1+"\n");
//Agrega tema a lista
lista.add(t1);
et1.setText("Borra e introd. descripcion del tema");
sw = false;
}else{
tv2.append("Tema Duplicado: "+t1+"\n");
sw = true ;
}
}else{
et1.setText("Borra e introd. nombre del tema");
tv2.append("Espacios...Introduce un Tema...\n");
sw = true;
}
}else{
//Capta de et1 tema
t1 = et1.getText().toString();
//Verifica si es un tema
if(!t1.equals(" ")){
tv2.append("Desc: "+t1+"\n");
//Agrega tema a lista
lista1.add(t1);
et1.setText("Borra e introd. nombre del tema");
sw = true;
}else{
et1.setText("Borra e introd. descripcion del tema");
tv2.append("Espacios...Introduce un Tema...\n");
sw = false;
}
}//sw
}//b1
if(view == b2){
//Limpia pantalla et1
et1.setText(" ");
}//b2
if(view == b3){
//Verifica que lista no este vacia
if(!lista.isEmpty()){
tv2.setText("");
//Lista de temas
tv2.append("Lista completa de temas\n");
int j = lista.size();
int k = lista1.size();
if(j==k){
for(int i=0; i<j; i++){
tv2.append("T"+i+": "+lista.get(i)+"\n");
tv2.append("D"+i+": "+lista1.get(i)+"\n");
}
}else{
for(int i=0; i<j; i++){
tv2.append("T"+i+": "+lista.get(i)+"\n");
//tv2.append("Desc"+i+": "+lista1.get(i)+"\n");
}
for(int i=0; i<k; i++){
//tv2.append("Tema"+i+": "+lista.get(i)+"\n");
tv2.append("D"+i+": "+lista1.get(i)+"\n");
}
tv2.append("Listas nombres y descripcion de temas diferentes");
}
}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("");
//Crea y guarda archivo interno
int ii = lista.size();
int jj = lista1.size();
if(ii==jj){
try{
OutputStreamWriter osw1 = new OutputStreamWriter(
openFileOutput("nombres.txt", Context.MODE_PRIVATE));
tv2.append("Crear archivo lista nombres de temas: "+"\n");
int j = lista.size();
for(int i=0; i<j; i++){
osw1.write(lista.get(i)+"\n");
}
osw1.close();
tv2.append("Archivo lista nombres de temas creado...\n");
}catch(Exception ex){
tv2.append("Error al crear archivo...\n");
}
// Crear archivo de descripcion de temas
try{
OutputStreamWriter osw2 = new OutputStreamWriter(
openFileOutput("nombres1.txt", Context.MODE_PRIVATE));
tv2.append("Crear archivo lista descripcion de temas: "+"\n");
int j = lista1.size();
for(int i=0; i<j; i++){
osw2.write(lista1.get(i)+"\n");
}
osw2.close();
tv2.append("Archivo lista descripcion de temas creado...\n");
}catch(Exception ex){
tv2.append("Error al crear archivo...\n");
}
}else{
tv2.append("Listas nombres y descripcion de temas diferentes");
}
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b4
if(view == b5){
//Verifica que lista no este vacia
//if(!lista.isEmpty()){
tv2.setText("");
lista.clear();
lista1.clear();
//Recupera archivo de nombres de temas
try{
BufferedReader br1 = new BufferedReader(new InputStreamReader
(openFileInput("nombres.txt")));
tv2.append("Recupera archivo de lista de temas: \n");
int ii = 0;
String lt1;
while((lt1 = br1.readLine()) != null){
tv2.append("T"+ii+": "+lt1+"\n");
lista.add(lt1);
ii++;
}
br1.close();
}catch(Exception ex){
tv2.append("Error de lectura...\n");
}
//Recupera archivo de descripcion de temas
try{
BufferedReader br2 = new BufferedReader(new InputStreamReader
(openFileInput("nombres1.txt")));
tv2.append("Recupera archivo de lista de temas: \n");
int ii = 0;
String lt2;
while((lt2 = br2.readLine()) != null){
tv2.append("D"+ii+": "+lt2+"\n");
lista1.add(lt2);
ii++;
}
br2.close();
}catch(Exception ex){
tv2.append("Error de lectura...\n");
}
//}else{
//tv2.setText("");
//tv2.append("Lista de temas esta vacia...");
//}//empty
}//b5
}//on click
}//class
Como se explico en el proyecto P03_variables,
vamos a compilar, instalar y ejecutar el proyecto y obtenemos los resultados
deseados.
Listado
de Temas
Guardar
Archivo de Temas
Recuperar
Archivo de Temas
P11b_temas
El programa es una extensión del anterior y trata de
cómo capturar tema por tema y su descripción, cada tema se agrega a una lista y
cada descripción se agrega a otra lista y se manejan juntas y se
despliegan en la pantalla, la lista de
temas y su nombre, a continuación su descripción. También se pueden guardar en
un archivo los nombres de temas y en otro archivo contiene la descripción de
cada tema y posteriormente se pueda recuperarla la lista de nombre y descripción
de temas del archivo, con esto se puede ir acumulando los temas en los dos
archivos y cuando se recuperan se pueden agregarse nombres y descripción de
temas nuevos.
En este programa podemos modificar y eliminar temas,
opciones muy importantes para tener el programa completo de poder agregar, modificar
las listas de nombres y descripciones de los temas, podemos guardarlos y
recuperarlos, es decir un programa funcional.
Creamos un nuevo proyecto P11b_temas, en modulo
ponemos com.gri.p11b, presionamos el folder src y vamos al programa
MainActivity.java editamos e introducimos el siguiente programa.
package com.gri.p11b;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.view.View.OnClickListener;
import java.util.ArrayList;
import android.graphics.Color;
import java.io.*;
import android.content.Context;
import android.text.method.*;
public class MainActivity extends Activity implements OnClickListener
{
Button b1;
Button b2;
Button b3;
Button b4;
Button b5;
Button b6;
Button b7;
Button b8;
EditText et1;
TextView tv2;
//String t1 para captar temas de et1
String t1, t2;
//Arreglo lista para guardar temas
ArrayList<String> lista = new ArrayList<String>();
ArrayList<String> lista1 = new ArrayList<String>();
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.MAGENTA);
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;
for(int i=0; i<lista.size(); i++){
if(t1.equalsIgnoreCase(lista.get(i))){
duplicado = true;
break;
}
}
if(!duplicado){
tv2.append("Tema: "+t1+"\n");
//Guarda tema lista en at2
t2 = t1;
//lista.add(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:
if(!t1.equals(" ")){
//Agrega tema a lista y lista1
lista.add(t2);
lista1.add(t1);
et1.setText("Fin captura del tema");
lista();
cont1 = 0;
break;
}else{
et1.setText("Espacios...Introduce tema\n");
cont1 = 0;
break;
}
}//switch
}//b1
if(view == b2){
//Limpia pantalla et1
et1.setText(" ");
}//b2
if(view == b3){
//Verifica que lista no este vacia
if(!lista.isEmpty()){
tv2.setText("");
//Crea y guarda archivo interno
int ii = lista.size();
int jj = lista1.size();
if(ii==jj){
try{
OutputStreamWriter osw1 = new OutputStreamWriter(
openFileOutput("nombres.txt", Context.MODE_PRIVATE));
tv2.append("Crear archivo lista nombres de temas: "+"\n");
int j = lista.size();
for(int i=0; i<j; i++){
osw1.write(lista.get(i)+"\n");
}
osw1.close();
tv2.append("Archivo lista nombres de temas creado...\n");
}catch(Exception ex){
tv2.append("Error al crear archivo...\n");
}
// Crear archivo de descripcion de temas
try{
OutputStreamWriter osw2 = new OutputStreamWriter(
openFileOutput("nombres1.txt", Context.MODE_PRIVATE));
tv2.append("Crear archivo lista descripcion de temas: "+"\n");
int j = lista1.size();
for(int i=0; i<j; i++){
osw2.write(lista1.get(i)+"\n");
}
osw2.close();
tv2.append("Archivo lista descripcion de temas creado...\n");
}catch(Exception ex){
tv2.append("Error al crear archivo...\n");
}
}else{
tv2.append("Listas nombres y descripcion de temas diferentes");
}
}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("");
lista.clear();
lista1.clear();
//Recupera archivo de nombre de temas
try{
BufferedReader br1 = new BufferedReader(new InputStreamReader
(openFileInput("nombres.txt")));
tv2.append("Recupera archivo de lista de temas: \n");
int ii = 0;
String lt1;
while((lt1 = br1.readLine()) != null){
lista.add(lt1);
ii++;
}
br1.close();
}catch(Exception ex){
tv2.append("Error de lectura...\n");
}
//Recupera archivo de descripcion de temas
try{
BufferedReader br2 = new BufferedReader(new InputStreamReader
(openFileInput("nombres1.txt")));
tv2.append("Recupera archivo de lista de temas: \n");
int ii = 0;
String lt2;
while((lt2 = br2.readLine()) != null){
lista1.add(lt2);
ii++;
}
br2.close();
}catch(Exception ex){
tv2.append("Error de lectura...\n");
}
lista();
//}else{
//tv2.setText("");
//tv2.append("Lista de temas esta vacia...");
//}//empty
}//b4
//Lista
if(view == b5){
//Verifica que lista no este vacia
if(!lista.isEmpty()){
lista();
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b5
//Modifica nombre del tema
if(view == b6){
if(!lista.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:
for(int i=0; i<lista.size(); i++){
if(t1.equalsIgnoreCase(lista.get(i))){
idx6 = lista.indexOf(lista.get(i));
break;
}
}
if(idx6 == -1){
et1.setText("Nombre no existe...presiona Modi_n");
cont6 = 0;
break;
}else{
cont6++;
et1.setText("Introduce nombre de tema nuevo");
break;
}
case 2:
if(!t1.equals(" ")){
boolean duplicado = false;
for(int i=0; i<lista.size(); i++){
if(t1.equalsIgnoreCase(lista.get(i))){
duplicado = true;
break;
}
}
if(!duplicado){
lista.set(idx6, t1);
et1.setText("Fin de modificacion nombre");
tv2.setText("");
tv2.append("Nombre de tema modificado..."+t1);
idx6 = -1;
cont6 = 0;
break;
}else{
et1.setText("Tema Duplicado...presiona Modi_n");
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
//Modifica descripcion del tema
if(view == b7){
if(!lista.isEmpty()){
t1 = et1.getText().toString();
switch(cont7){
case 0:
et1.setText("Introduce nombre del tema");
t1 = "";
idx7 = -1;
cont1 = cont6 = cont8 = 0;
cont7++;
break;
case 1:
for(int i=0; i<lista.size(); i++){
if(t1.equalsIgnoreCase(lista.get(i))){
idx7 = lista.indexOf(lista.get(i));
break;
}
}
if(idx7 == -1){
et1.setText("Nombre no existe...presiona Modi_d");
cont7 = 0;
break;
}else{
cont7++;
et1.setText("Introduce descripcion nueva");
break;
}
case 2:
if(!t1.equals(" ")){
lista1.set(idx7, t1);
et1.setText("Fin modificacion descripcion");
tv2.setText("");
tv2.append("Descripcion de tema modificado..."+t1);
idx7 = -1;
cont7 = 0;
}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(!lista.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:
for(int i=0; i<lista.size(); i++){
if(t1.equalsIgnoreCase(lista.get(i))){
idx8 = lista.indexOf(lista.get(i));
break;
}
}
if(idx8 == -1){
et1.setText("Nombre no existe...presiona Elimina");
cont8 = 0;
break;
}else{
lista.remove(idx8);
lista1.remove(idx8);
et1.setText("Tema eliminado");
tv2.setText("");
tv2.append("Tema eliminado..."+t1+"\n");
cont8 = 0;
idx8 = 0;
break;
}
}//switch
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b8
}//on click
public void lista(){
tv2.setText("");
//Lista de temas
tv2.append("Lista completa de temas\n");
int j = lista.size();
int k = lista1.size();
if(j==k){
for(int i=0; i<j; i++){
tv2.append("T"+i+": "+lista.get(i)+"\n");
tv2.append("D"+i+": "+lista1.get(i)+"\n");
}
}else{
for(int i=0; i<j; i++){
tv2.append("T"+i+": "+lista.get(i)+"\n");
//tv2.append("Desc"+i+": "+lista1.get(i)+"\n");
}
for(int i=0; i<k; i++){
//tv2.append("Tema"+i+": "+lista.get(i)+"\n");
tv2.append("D"+i+": "+lista1.get(i)+"\n");
}
tv2.append("Listas nombres y descripcion de temas diferentes");
}
}
}//class
Como se explico en el proyecto P03_variables, vamos a compilar, instalar y ejecutar el proyecto y obtenemos los resultados deseados.
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.view.View.OnClickListener;
import java.util.ArrayList;
import android.graphics.Color;
import java.io.*;
import android.content.Context;
import android.text.method.*;
public class MainActivity extends Activity implements OnClickListener
{
Button b1;
Button b2;
Button b3;
Button b4;
Button b5;
Button b6;
Button b7;
Button b8;
EditText et1;
TextView tv2;
//String t1 para captar temas de et1
String t1, t2;
//Arreglo lista para guardar temas
ArrayList<String> lista = new ArrayList<String>();
ArrayList<String> lista1 = new ArrayList<String>();
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.MAGENTA);
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;
for(int i=0; i<lista.size(); i++){
if(t1.equalsIgnoreCase(lista.get(i))){
duplicado = true;
break;
}
}
if(!duplicado){
tv2.append("Tema: "+t1+"\n");
//Guarda tema lista en at2
t2 = t1;
//lista.add(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:
if(!t1.equals(" ")){
//Agrega tema a lista y lista1
lista.add(t2);
lista1.add(t1);
et1.setText("Fin captura del tema");
lista();
cont1 = 0;
break;
}else{
et1.setText("Espacios...Introduce tema\n");
cont1 = 0;
break;
}
}//switch
}//b1
if(view == b2){
//Limpia pantalla et1
et1.setText(" ");
}//b2
if(view == b3){
//Verifica que lista no este vacia
if(!lista.isEmpty()){
tv2.setText("");
//Crea y guarda archivo interno
int ii = lista.size();
int jj = lista1.size();
if(ii==jj){
try{
OutputStreamWriter osw1 = new OutputStreamWriter(
openFileOutput("nombres.txt", Context.MODE_PRIVATE));
tv2.append("Crear archivo lista nombres de temas: "+"\n");
int j = lista.size();
for(int i=0; i<j; i++){
osw1.write(lista.get(i)+"\n");
}
osw1.close();
tv2.append("Archivo lista nombres de temas creado...\n");
}catch(Exception ex){
tv2.append("Error al crear archivo...\n");
}
// Crear archivo de descripcion de temas
try{
OutputStreamWriter osw2 = new OutputStreamWriter(
openFileOutput("nombres1.txt", Context.MODE_PRIVATE));
tv2.append("Crear archivo lista descripcion de temas: "+"\n");
int j = lista1.size();
for(int i=0; i<j; i++){
osw2.write(lista1.get(i)+"\n");
}
osw2.close();
tv2.append("Archivo lista descripcion de temas creado...\n");
}catch(Exception ex){
tv2.append("Error al crear archivo...\n");
}
}else{
tv2.append("Listas nombres y descripcion de temas diferentes");
}
}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("");
lista.clear();
lista1.clear();
//Recupera archivo de nombre de temas
try{
BufferedReader br1 = new BufferedReader(new InputStreamReader
(openFileInput("nombres.txt")));
tv2.append("Recupera archivo de lista de temas: \n");
int ii = 0;
String lt1;
while((lt1 = br1.readLine()) != null){
lista.add(lt1);
ii++;
}
br1.close();
}catch(Exception ex){
tv2.append("Error de lectura...\n");
}
//Recupera archivo de descripcion de temas
try{
BufferedReader br2 = new BufferedReader(new InputStreamReader
(openFileInput("nombres1.txt")));
tv2.append("Recupera archivo de lista de temas: \n");
int ii = 0;
String lt2;
while((lt2 = br2.readLine()) != null){
lista1.add(lt2);
ii++;
}
br2.close();
}catch(Exception ex){
tv2.append("Error de lectura...\n");
}
lista();
//}else{
//tv2.setText("");
//tv2.append("Lista de temas esta vacia...");
//}//empty
}//b4
//Lista
if(view == b5){
//Verifica que lista no este vacia
if(!lista.isEmpty()){
lista();
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b5
//Modifica nombre del tema
if(view == b6){
if(!lista.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:
for(int i=0; i<lista.size(); i++){
if(t1.equalsIgnoreCase(lista.get(i))){
idx6 = lista.indexOf(lista.get(i));
break;
}
}
if(idx6 == -1){
et1.setText("Nombre no existe...presiona Modi_n");
cont6 = 0;
break;
}else{
cont6++;
et1.setText("Introduce nombre de tema nuevo");
break;
}
case 2:
if(!t1.equals(" ")){
boolean duplicado = false;
for(int i=0; i<lista.size(); i++){
if(t1.equalsIgnoreCase(lista.get(i))){
duplicado = true;
break;
}
}
if(!duplicado){
lista.set(idx6, t1);
et1.setText("Fin de modificacion nombre");
tv2.setText("");
tv2.append("Nombre de tema modificado..."+t1);
idx6 = -1;
cont6 = 0;
break;
}else{
et1.setText("Tema Duplicado...presiona Modi_n");
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
//Modifica descripcion del tema
if(view == b7){
if(!lista.isEmpty()){
t1 = et1.getText().toString();
switch(cont7){
case 0:
et1.setText("Introduce nombre del tema");
t1 = "";
idx7 = -1;
cont1 = cont6 = cont8 = 0;
cont7++;
break;
case 1:
for(int i=0; i<lista.size(); i++){
if(t1.equalsIgnoreCase(lista.get(i))){
idx7 = lista.indexOf(lista.get(i));
break;
}
}
if(idx7 == -1){
et1.setText("Nombre no existe...presiona Modi_d");
cont7 = 0;
break;
}else{
cont7++;
et1.setText("Introduce descripcion nueva");
break;
}
case 2:
if(!t1.equals(" ")){
lista1.set(idx7, t1);
et1.setText("Fin modificacion descripcion");
tv2.setText("");
tv2.append("Descripcion de tema modificado..."+t1);
idx7 = -1;
cont7 = 0;
}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(!lista.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:
for(int i=0; i<lista.size(); i++){
if(t1.equalsIgnoreCase(lista.get(i))){
idx8 = lista.indexOf(lista.get(i));
break;
}
}
if(idx8 == -1){
et1.setText("Nombre no existe...presiona Elimina");
cont8 = 0;
break;
}else{
lista.remove(idx8);
lista1.remove(idx8);
et1.setText("Tema eliminado");
tv2.setText("");
tv2.append("Tema eliminado..."+t1+"\n");
cont8 = 0;
idx8 = 0;
break;
}
}//switch
}else{
tv2.setText("");
tv2.append("Lista de temas esta vacia...");
}//empty
}//b8
}//on click
public void lista(){
tv2.setText("");
//Lista de temas
tv2.append("Lista completa de temas\n");
int j = lista.size();
int k = lista1.size();
if(j==k){
for(int i=0; i<j; i++){
tv2.append("T"+i+": "+lista.get(i)+"\n");
tv2.append("D"+i+": "+lista1.get(i)+"\n");
}
}else{
for(int i=0; i<j; i++){
tv2.append("T"+i+": "+lista.get(i)+"\n");
//tv2.append("Desc"+i+": "+lista1.get(i)+"\n");
}
for(int i=0; i<k; i++){
//tv2.append("Tema"+i+": "+lista.get(i)+"\n");
tv2.append("D"+i+": "+lista1.get(i)+"\n");
}
tv2.append("Listas nombres y descripcion de temas diferentes");
}
}
}//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
Recuperar Archivo de Temas
Modificar Temas
Eliminar Temas