Vistas de página en total

miércoles, 29 de agosto de 2012

Programación Android con AIDE y Java 5


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.
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.

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.
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           
 
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.

Captura de Temas

Guardar Archivo de Temas

Recuperar Archivo de Temas

Modificar Temas

Eliminar Temas