• No se han encontrado resultados

Apéndice B: Código Fuente

N/A
N/A
Protected

Academic year: 2021

Share "Apéndice B: Código Fuente"

Copied!
58
0
0

Texto completo

(1)

                                                                                       

Apéndice B:

Código Fuente

(2)

                                                                                       

Código Fuente

Java

(3)

Inicio.java package com.example.appieee; import java.io.FileInputStream; public class Inicio extends Activity { private ProgressBar pbCar;//Declaramos la barra de progreso private Carga tarea;//Declaramos las tareas que vamos a realizar en segundo plano static boolean haHabidoConexion = false; //variable estática para poder acceder a ella  desde cualquier lugar  //que nos dira en todo momento si hemos  descargado algo private String fileDir;//String que llevara la ruta de la memoria interna private Leer leerFicheros; //  Declaramos objeto de la clase Leer private FileInputStream fin; // Declaramos variable para datos entrantes private ArrayList<String> menu = null; // Lista de objetos tipo String. Sirve para leer el  archivo menu.xml y guardar todas sus etiquetas private ArrayList<Mapa> mapas = null; // Lista de objetos tipo String. Sirve para leer  el archivo mapa.xml y guardar todas sus etiquetas private ArrayList<Noticia> noticias = null; // Array al que le pasamos objetos del tipo  Noticia private String[] archivos={"foto0.png","foto1.png","foto2.png","foto3.png","foto4.png", "foto5.png","foto6.png","foto7.png","foto8.png","foto9.png"}; // Array con 10  fotos private boolean conexionExiste; private boolean conexion; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto‐generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.inicio); pbCar = (ProgressBar) findViewById(R.id.pbCarga); fileDir = getFilesDir().toString(); // Da la ruta hacia la memoria interna donde  queremos ubicar el archivo y lo transforma en un String // ///////////////////////////////////////////////////// // Para leer el archivo descargado conexion.xml leerFicheros = new Leer(); // Creamos objeto leerFicheros try { fin = openFileInput("conexion.xml"); // Asignamos a la variable fin el archivo  conexion.xml conexionExiste=true; } catch (FileNotFoundException e1) { e1.printStackTrace(); } // /////////////////////////////////////////////////// ////////////////////////////////////////////////// //Comprobamos que exista conexión if(isOnline()){ tarea = new Carga();//Creamos un objeto tipo carga tarea.execute();//Ejecutamos las tareas en segundo plano haHabidoConexion = true; //Si hemos tenido conexión nuestra variable se pone a  true para no tener que descargar más si no hay internet }else if(conexionExiste){ // colocamos con el método el archivo que queremos leer

(4)

Inicio.java leerFicheros.setLeerArchivos(fin); // Pasamos a leerFicheros mediante el método  setLeerArchivos el archivo conexion.xml conexion = leerFicheros.getLeerConexion(); // con este método devolvemos un  booleano que indicará si ya se hizo una conexion en caso de no tenerla ahora if(conexion){//Si lo que tenemos en conexion es true pasaremos al menú principal Intent intent = new Intent("com.example.appieee.MENU"); startActivity(intent); }else{ Toast.makeText(this, "La primera vez es necesaria conexión a internet", Toast.LENGTH_LONG).show(); finish();//terminamos la aplicación } }else{//Si no existe sale un Toast diciendo que nos hace falta internet Toast.makeText(this, "La primera vez es necesaria la conexión a internet", Toast.LENGTH_LONG).show(); finish();//terminamos la aplicación } ////////////////////////////////////////////////// }//Cierre de la activity // //////////////////////////////////////////// // Esta función duerme el hilo principal 1 segundo private void tareaLarga() { try { Thread.sleep(1000);//Dormir el proceso un segundo para dar tiempo a la descarga de  cada .XML } catch (InterruptedException e) { e.printStackTrace(); } } // ////////////////////////////////////////////// // /////////////////////////////////////////////// // Esta función comprueba que hay internet public boolean isOnline() { ConnectivityManager cm = (ConnectivityManager)  getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); if (netInfo != null && netInfo.isConnected()) { return true; } return false; } // //////////////////////////////////////////////// ////////////////////////////////////////////////// //Función que leerá el menú private void leerMenu(){ try { fin = openFileInput("menu.xml"); // Asignamos a la variable fin el archivo  menu.xml } catch (FileNotFoundException e1) { e1.printStackTrace(); } Page 2

(5)

Inicio.java // colocamos con el método el archivo que queremos leer leerFicheros.setLeerArchivos(fin); // Pasamos a leerFicheros mediante el método  setLeerArchivos el archivo menu.xml // con este método devolvemos una lista de String que colocaremos en menu menu = leerFicheros.getLeerMenuXML(); // Leemos el archivo pasado (menu.xml) y  devolvemos una lista con el contenido del xml ( url,pngs, etc) descargarOtrosDocumentos(menu); //Este método que llamamos, servirá para poder  descargar los demás .XML } ////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// // Método que sirve para descargar otros documentos private void descargarOtrosDocumentos(ArrayList<String> menu){ int i; // Declaración de variable para utilizar contador String[]  archivos={"nombre","siglas","logo.png","noticiasYavisos.xml","programa.xml", "textos.xml","mapa.xml","informacion.xml","contacto.xml"}; // Array con el  nombre que le vamos a poner a los archivos descargados for(i=2;i<=8;i++){ // Recorrido para la descarga de todos los .XML Bajada baja = new Bajada(); //Creamos un objeto bajada para poder acceder  sus métodos baja.setGuardaXML(menu.get(i).toString(), archivos[i],  fileDir); //Accedemos al método que descargará los distintos .XML //menu. get(i).toString();//Esta URL será la que cambie e irá descargando los distintos XML  //arch ivos[i]; // En la posición 2 de datos vamos metiendo los nombres que les vamos a adjudicar a  los archivos que vayamos descargando, asociados a las url que estamos sacando de menu.xml } descargaSitio();//Nos dirigimos a descargar la imagen del sitio } ////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// //Descarga el mapa del sitio private void descargaSitio(){ // ///////////////////////////////////////////////////// // Esto es para leer el XML de mapa try { fin = openFileInput("mapa.xml"); } catch (FileNotFoundException e1) { // TODO Auto‐generated catch block e1.printStackTrace(); } // colocamos con el método el archivo que queremos leer leerFicheros.setLeerArchivos(fin); // con este método devolvemos una lista de String que colocaremos en menú mapas = leerFicheros.leerMapaXML(); // ///////////////////////////////////////////////////

(6)

Inicio.java // ///////////////////////////////////////////////////// // Esto es para Descargar el mapa del sitio y guardarlo en memoria interna Bajada baja = new Bajada(); //Creamos un objeto bajada para poder acceder sus  métodos baja.setGuardaXML(mapas.get(0).getSitio(), "sitio.png",  fileDir); //Accedemos al método que descargará los distintos .XML //mapas.get(0).getSitio();//Este método nos devolverá una URL que nos servirá para  descargar la imagen del sitio //"sitio.png"; // Es el nombre que pondremos al archivo descargado //filedir; //Ruta en la que acabará nuestro archivo descargaFotos(); } //////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// //Descarga las fotos de las noticias private void descargaFotos(){ int i=0; //Contador para las fotos // ///////////////////////////////////////////////////// // Esto es para leer el XML de noticias leerFicheros = new Leer(); //Creamos el objeto leerFicheros try { fin = openFileInput("noticiasYavisos.xml"); //Abrimos el archivo  noticiasYavisos que descargamos en App IEEE y pasamos la información a fin } catch (FileNotFoundException e1) { e1.printStackTrace(); } // colocamos con el método el archivo que queremos leer leerFicheros.setLeerArchivos(fin); // con este método devolvemos una lista de String que colocaremos en // noticias noticias = leerFicheros.leerNoticiaXML(); // /////////////////////////////////////////////////// //Este for recorrera la lista de noticias y noticia siguiente será cada noticia  individualmente para que podamos acceder a ellas for (Noticia noticiaSiguiente: noticias) { if(noticiaSiguiente.getUrlImage()!=null){// Si de la entrada la url no es nula  tiene que hacer lo siguiente Bajada baja = new Bajada(); //Creamos un objeto bajada para poder  acceder sus métodos baja.setGuardaXML(noticiaSiguiente.getUrlImage(), archivos[i],  fileDir); //Accedemos al método que descargará las distintas fotos //noticiaSiguiente.getUrlImage();//Este método nos devolverá una URL que  nos servirá para descargar la imagen del sitio //archivos[i]; // Es el nombre que pondremos al archivo descargado //filedir; //Ruta en la que acabará nuestro archivo // i++; //Incremento del contador Page 4

(7)

Inicio.java } } try { habilitandoConexion(); } catch (IOException e) { // TODO Auto‐generated catch block e.printStackTrace(); } } /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// //Descargará un xml en el que pondrá que hemos tenido conexión private void habilitandoConexion() throws IOException{ //Creamos un fichero en la memoria interna OutputStreamWriter fout =     new OutputStreamWriter(         openFileOutput("conexion.xml",       Context.MODE_PRIVATE));   StringBuilder sb = new StringBuilder();   // Construimos el XML sb.append("<conexion>"); sb.append("" + "true" + ""); sb.append("</conexion>");   //Escribimos el resultado a un fichero fout.write(sb.toString()); fout.close(); } /////////////////////////////////////////////////////////////////// //Esta es la carga que realizaremos en segundo plano private class Carga extends AsyncTask<Void, Integer, Boolean> { protected void onPreExecute() { pbCar.setMax(100);//Poner la progressBar en un tope de 100 pbCar.setProgress(0);//Poner que la progressBar que empiece en 0 } @Override protected Boolean doInBackground(Void... params) { // TODO Auto‐generated method stub Bajada baja = new Bajada(); //Creamos un objeto bajada para poder acceder sus  métodos baja.setGuardaXML("http://danielsilva.tk/corporativo/media/menu.xml", "menu.xml",  fileDir); //Accedemos al método que descargará el menú leerMenu(); for (int i = 1; i <= 5; i++) {

(8)

Inicio.java tareaLarga(); // Este es el retardo para simular una carga publishProgress(i * 10); //Esto para que la barra de carga vaya actualizandose if (isCancelled()) break; } return true; } @Override protected void onProgressUpdate(Integer... values) { int progreso = values[0].intValue(); pbCar.setProgress(progreso);//Actualizado el progreso de la progressBar } @Override protected void onPostExecute(Boolean result) { if (result) Toast.makeText(getApplicationContext(), "Actualización realizada", Toast.LENGTH_LONG).show(); Intent intent = new Intent("com.example.appieee.MENU"); startActivity(intent);//Una vez mostrado el toast, pasamos a la activity AppIeee } @Override protected void onCancelled() { Toast.makeText(getApplicationContext(), "¡Tarea cancelada!", Toast.LENGTH_SHORT).show(); } } } Page 6

(9)

AppIEEE.java package com.example.appieee; import java.io.File; public class AppIEEE extends Activity { // Declaramos variables para utilizarlas posteriormente private ListView lstOpciones; private TextView lvNomConfe; private TextView lvSigConfe; private ImageView ivLogo; private Leer leerFicheros; //  Declaramos objeto de la clase Leer private ArrayList<String> menu = null; // Lista de objetos tipo String. Sirve para leer el  archivo menu.xml y guardar todas sus etiquetas private FileInputStream fin; // Declaramos variable para datos entrantes // Método principal que se ejecuta con la creación de la Main Activity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_app_ieee); // Tomamos el ContenView de // los recursos del layout // que se llama // activity_app_ieee // Relacionamos el código java con la parte gráfica de los xml lvNomConfe = (TextView) findViewById(R.id.tvNombreConfe);  lvSigConfe = (TextView) findViewById(R.id.tvSiglasConfe); ivLogo = (ImageView) findViewById(R.id.tvImagenConfe); //BLOQUES DE FUNCIONAMIENTO // ///////////////////////////////////////////////////// // Para leer el archivo descargado menu.xml leerFicheros = new Leer(); // Creamos objeto leerFicheros try { fin = openFileInput("menu.xml"); // Asignamos a la variable fin el archivo  menu.xml } catch (FileNotFoundException e1) { e1.printStackTrace(); } // colocamos con el método el archivo que queremos leer leerFicheros.setLeerArchivos(fin); // Pasamos a leerFicheros mediante el método  setLeerArchivos el archivo menu.xml // con este método devolvemos una lista de String que colocaremos en // menu menu = leerFicheros.getLeerMenuXML(); // Leemos el archivo pasado (menu.xml) y  devolvemos una lista con el contenido del xml ( url,pngs, etc) // /////////////////////////////////////////////////// // /////////////////////////////////////////////////// // Colocamos en la vista el nombre de la conferencia y las siglas de la conferencia lvNomConfe.setText(menu.get(0));//Aquí asociamos el nombre desde la lista de menú lvSigConfe.setText(menu.get(1));//y aquí las siglas

(10)

AppIEEE.java // /////////////////////////////////////////////////// // ///////////////////////////////////////////////////// // Leemos la imagen o logo del menu File filePath = getFileStreamPath("logo.png"); // Creamos variable filePath del tipo  File para guardar la ruta del archivo logo.png ivLogo.setImageDrawable(Drawable.createFromPath(filePath.toString())); // Para colocar  la imagen en el image View // /////////////////////////////////////////////////// lstOpciones = (ListView) findViewById(R.id.lvOpciones); // Para // encontrar el // elemento // ListView // declarado // anteriormente // Este adaptador coge la lista del menú de un XML lleno de String el // String se llama "valores menu" el XML // se llama "xml_menu" y se encuentra en "res/values/xml_menu.xml" ArrayAdapter<CharSequence> adaptador = ArrayAdapter.createFromResource( this, R.array.valoresMenu, android.R.layout.simple_list_item_1); // Adaptador  que adapta a un listView los elementos que queremos mostrar lstOpciones.setAdapter(adaptador); // Asignamos el ArrayAdapter // adaptador al ListView lstOpciones // mediante el método setAdapter() // Hacemos uso del método setOnItemClickListener, que utilizaremos para // clickar las distintas opciones del menú principal lstOpciones.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> a, View v, int posicion,  long id) { // Vamos a utilizar el int posición para saber el elemento que  vamos a seleccionar del listView // Generamos un switch para actuar ante la pulsación de los // distintos items que componen el ListView, al pasarle la // variable posicion switch (posicion) { case 0: Intent intent0 = new Intent("com.example.appieee.NOTICIAS"); startActivity(intent0); break; case 1: Intent intent1 = new Intent("com.example.appieee.PROGRAMA"); startActivity(intent1); break; case 2: Intent intent2 = new Intent("com.example.appieee.TEXTOS"); startActivity(intent2); Page 2

(11)

AppIEEE.java break; case 3: Intent intent3 = new Intent("com.example.appieee.MAPA"); startActivity(intent3); break; case 4: Intent intent4 = new Intent("com.example.appieee.INFORMACION"); startActivity(intent4); break; case 5: Intent intent5 = new Intent("com.example.appieee.CONTACTO"); startActivity(intent5); break; } } }); } // Mostrar submenu cuando le damos a la tecla de submenu en el móvil @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.app_ieee, menu); return true; } }

(12)

MostrarNoticias.java package com.example.appieee; import java.io.File; public class MostrarNoticias extends Activity { // Declaramos variables para utilizarlas posteriormente private ListView lista; private Leer leerFicheros; private ArrayList<Noticia> noticias = null; // Array al que le pasamos objetos del tipo  Noticia private FileInputStream fin; private CharSequence textoDescripcion; // El CharSequence es un tipo de String private CharSequence textoTitulo; private Dialog d; // Variable de tipo Dialog @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto‐generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.listado); // Decimos la vista que vamos a utilizar // ///////////////////////////////////////////////////// // Esto es para leer el XML de noticias leerFicheros = new Leer(); //Creamos el objeto leerFicheros try { fin = openFileInput("noticiasYavisos.xml"); //Abrimos el archivo noticiasYavisos  que descargamos en App IEEE y pasamos la información a fin } catch (FileNotFoundException e1) { e1.printStackTrace(); } // colocamos con el método el archivo que queremos leer leerFicheros.setLeerArchivos(fin); // con este método devolvemos una lista de String que colocaremos en // noticias noticias = leerFicheros.leerNoticiaXML(); // /////////////////////////////////////////////////// lista = (ListView) findViewById(R.id.ListView_listado); // Definimos la lista que se  encuentra dentro de la interfaz gráfica y la controlamos en java mediante la variable lista // Vamos a definir mediante un adaptador la información que vamos a meter en el  listview lista.setAdapter(new Lista_adaptador(this, R.layout.entrada, (ArrayList<?>) noticias) {// Método setAdapter para introducir información a  la lista. Dentro definimos un nuevo adaptador, definido con los parámetros:contexto, vista y  la información en forma de lista de noticias          // Para poner el Título, la Descripción y la imagen en cada una de las entradas de  noticia @Override Page 1

(13)

MostrarNoticias.java public void onEntrada(Object entrada, View view) { // TODO Auto‐generated method stub if (entrada != null) {// Si entrada no es null  TextView texto_superior_entrada = (TextView) view   .findViewById(R.id.textView_superior);// Creamos un TextView if (texto_superior_entrada != null) // Si texto superior de entrada no es  null texto_superior_entrada.setText(((Noticia) entrada) .getTitulo());// entonces introducimos el Título de la noticia  en Texto Superior Entrada TextView texto_inferior_entrada = (TextView) view .findViewById(R.id.textView_inferior);// Creamos un TextView if (texto_inferior_entrada != null)// Si texto inferior de entrada no es  null texto_inferior_entrada.setText(((Noticia) entrada) .getDescripcion());// entonces introducimos la Descripción de  la noticia en Texto Inferior Entrada // ///////////////////////////////////////////////////// // Para leer la imagen y ponerla en la noticia correspondiente ImageView imagen_entrada = (ImageView) view .findViewById(R.id.imageView_imagen);// Creamos imagen_entrada y  la asociamos con imageView del xml entrada if (imagen_entrada != null){// Si la imagen de entrada no es null if(((Noticia) entrada).getUrlImage()!=null){// Si de la entrada la url  no es nula tiene que hacer lo siguiente File filePath = getFileStreamPath(((Noticia)  entrada).getNumeroFoto()); // Pasamos el archivo que queremos leer, devolviendo una ruta imagen_entrada.setImageDrawable(Drawable.createFromPath(filePath.t oString())); // pasamos la ruta y la imagen la colocamos en imagen_entrada } else{ ////////////////////////////////////////////////////////////////////// ///////// //Si fuese null le asignamos una imagen por defecto que tenemos en los  recursos imagen_entrada.setImageResource(R.drawable.noticias); //Mostramo s la imagen que se encuentra al lado de la información util } } } } }); lista.setOnItemClickListener(new OnItemClickListener() { // Dar funcionalidad al  clickar @Override public void onItemClick(AdapterView<?> pariente, View view, int posicion, long id) { // Al método onItemClick le pasamos un adaptador,  una vista, una posición y un identificador Noticia elegida = (Noticia) pariente // Creamos un objeto Noticia llamada  elegida .getItemAtPosition(posicion); // Metemos en elegida el objeto de tipo  noticia que seleccionemos de la lista según su posición

(14)

MostrarNoticias.java textoTitulo = elegida.getTitulo();// En este String metemos el Título de la  noticia elegida textoDescripcion = elegida.getDescripcion(); // En este String metemos la  Descripción de la noticia elegida d = crearDialogoNoticia();// LLamamos al método crearDialogoNoticia (ver  debajo), que nos va a devolver un diálogo que se va a meter en d d.show(); // mostramos el diálogo } }); } private Dialog crearDialogoNoticia() {// Para crear diálogo noticia AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(textoTitulo); builder.setMessage(textoDescripcion); builder.setPositiveButton("OK", new OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); return builder.create(); } } Page 3

(15)

MostrarPrograma.java package com.example.appieee; import java.io.FileInputStream; public class MostrarPrograma extends Activity{ private ListView lista; private Leer leerFicheros; private ArrayList<Programa> programas = null; private FileInputStream fin; private String [] listaDeVerdad; private Dialog d; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto‐generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.listado); // ///////////////////////////////////////////////////// // Esto es para leer el XML de programa leerFicheros = new Leer(); try { fin = openFileInput("programa.xml"); } catch (FileNotFoundException e1) { // TODO Auto‐generated catch block e1.printStackTrace(); } // colocamos con el método el archivo que queremos leer leerFicheros.setLeerArchivos(fin); // con este método devolvemos una lista de String que colocaremos en // menu programas = leerFicheros.leerProgramaXML(); // /////////////////////////////////////////////////// lista = (ListView) findViewById(R.id.ListView_listado); lista.setAdapter(new Lista_adaptador(this, R.layout.entrada, (ArrayList<?>) programas) { @Override public void onEntrada(Object entrada, View view) { // TODO Auto‐generated method stub if (entrada != null) { TextView texto_superior_entrada = (TextView) view .findViewById(R.id.textView_superior); if (texto_superior_entrada != null) texto_superior_entrada.setText(((Programa) entrada) .getFecha()); TextView texto_inferior_entrada = (TextView) view .findViewById(R.id.textView_inferior); if (texto_inferior_entrada != null) texto_inferior_entrada.setText(((Programa) entrada) .getTema()); ImageView img=  (ImageView)view.findViewById(R.id.imageView_imagen);

(16)

MostrarPrograma.java img.setImageResource(R.drawable.programa); //Mostramos la imagen  que se encuentra al lado del programa } } }); lista.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> pariente, View view, int posicion, long id) { Programa elegida = (Programa) pariente .getItemAtPosition(posicion); listaDeVerdad= elegida.getLista(); d = crearDialogoSeleccion(); d.show(); } }); } private Dialog crearDialogoSeleccion(){     AlertDialog.Builder builder = new AlertDialog.Builder(this);     builder.setTitle("Eventos programados");     builder.setItems(listaDeVerdad, new DialogInterface.OnClickListener() {         public void onClick(DialogInterface dialog, int item) {       Log.i("Dialogos", "Opción elegida: " + listaDeVerdad[item]);         }     });     return builder.create(); } } Page 2

(17)

MostrarTextos.java package com.example.appieee; import java.io.FileInputStream; public class MostrarTextos extends Activity{ private ListView lista; private Leer leerFicheros; private ArrayList<Texto> textos = null; private FileInputStream fin; private CharSequence textoDescripcion; private CharSequence textoTitulo; private Dialog d; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto‐generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.listado); // ///////////////////////////////////////////////////// // Esto es para leer el XML de textos leerFicheros = new Leer(); try { fin = openFileInput("textos.xml"); } catch (FileNotFoundException e1) { // TODO Auto‐generated catch block e1.printStackTrace(); } // colocamos con el método el archivo que queremos leer leerFicheros.setLeerArchivos(fin); // con este método devolvemos una lista de String que colocaremos en // menu textos = leerFicheros.leerTextoXML(); // /////////////////////////////////////////////////// lista = (ListView) findViewById(R.id.ListView_listado); lista.setAdapter(new Lista_adaptador(this, R.layout.entrada, (ArrayList<?>) textos) { @Override public void onEntrada(Object entrada, View view) { // TODO Auto‐generated method stub if (entrada != null) { TextView texto_superior_entrada = (TextView) view .findViewById(R.id.textView_superior); if (texto_superior_entrada != null) texto_superior_entrada.setText(((Texto) entrada) .getTitulo()); TextView texto_inferior_entrada = (TextView) view .findViewById(R.id.textView_inferior); if (texto_inferior_entrada != null) texto_inferior_entrada.setText(((Texto) entrada) .getAutor());

(18)

MostrarTextos.java ImageView img= (ImageView)view.findViewById(R.id.imageView_imagen); img.setImageResource(R.drawable.textos_varios); //Mostramos la imagen que  se encuentra al lado de los textos } } }); lista.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> pariente, View view, int posicion, long id) { Texto elegida = (Texto) pariente .getItemAtPosition(posicion); textoTitulo = elegida.getTitulo(); textoDescripcion = elegida.getDescripcion(); d = crearDialogoTexto(); d.show(); } }); } private Dialog crearDialogoTexto() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(textoTitulo); builder.setMessage(textoDescripcion); builder.setPositiveButton("OK", new OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); return builder.create(); } } Page 2

(19)

MainMapa.java package com.example.appieee; import android.app.Activity; public class MainMapa extends Activity { // Declaramos elementos para utilizarlos posteriormente private ListView lstOpciones; // Método principal que se ejecuta con la creación de la Activity @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mainmapa);       // Tomamos el ContenView de       // los recursos del layout       // que se llama       // activity_app_ieee lstOpciones = (ListView) findViewById(R.id.lvOpciones); // Para // encontrar el // elemento // ListView // declarado // anteriormente // Mostraremos la lista de elementos del menú ListView final String[] datos = new String[] { "Mapa del Sitio", "Mapa de la Ciudad (sólo  online)"}; // Definiremos el array con los elementos de       //  prueba, lo llamaremos datos ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, datos);    // Creamos un // adaptador de // tipo // ArrayAdapter // llamado // adaptador lstOpciones.setAdapter(adaptador);      // Asignamos el ArrayAdapter       // adaptador al ListView  lstOpciones       // mediante el método  setAdapter() // Hacemos uso del método setOnItemClickListener, que utilizaremos para clickar las  distintas opciones del menú principal lstOpciones.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> a, View v, int posicion, long id) { // TODO Auto‐generated method stub

(20)

MainMapa.java //Generamos un switch para actuar ante la pulsación de los distintos items que componen el ListView, al pasarle la variable posicion switch (posicion) { case 0: Intent intent0 = new Intent("com.example.appieee.SITIO"); startActivity(intent0); break; case 1: Intent intent1 = new Intent("com.example.appieee.CIUDAD"); startActivity(intent1); break; } } }); } //Mostrar submenu cuando le damos a la tecla de submenu en el móvil @Override  public boolean onCreateOptionsMenu(Menu menu) {  // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.app_ieee, menu); return true; } } Page 2

(21)

Sitio.java package com.example.appieee; import java.io.File; public class Sitio extends Activity{ private ImageView imgView ; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto‐generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.sitio); File filePath = getFileStreamPath("sitio.png"); imgView = (ImageView) findViewById(R.id.IvImagenMapa); imgView.setImageDrawable(Drawable.createFromPath(filePath.toString())); } }

(22)

Ciudad.java package com.example.appieee; import java.io.FileInputStream; public class Ciudad extends Activity { private Leer leerFicheros; private FileInputStream fin; private ArrayList<Mapa> mapas = null; @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto‐generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.ciudad); WebView wv = (WebView) findViewById(R.id.Wvwebview); // ///////////////////////////////////////////////////// // Esto es para leer el XML de mapa leerFicheros = new Leer(); try { fin = openFileInput("mapa.xml"); } catch (FileNotFoundException e1) { // TODO Auto‐generated catch block e1.printStackTrace(); } // colocamos con el método el archivo que queremos leer leerFicheros.setLeerArchivos(fin); // con este método devolvemos una lista de String que colocaremos en // menu mapas = leerFicheros.leerMapaXML(); // /////////////////////////////////////////////////// // Activo JavaScript wv.getSettings().setJavaScriptEnabled(true); wv.setWebViewClient(new Callback()); WebSettings webSettings = wv.getSettings(); webSettings.setBuiltInZoomControls(true); wv.loadUrl(mapas.get(0).getCiudad()); // Con este método cogemos la url // del xml que nos apunta a la // guía michelin } // Para evitar que se nos abra el navegador al pinchar el enlace private class Callback extends WebViewClient { public boolean shouldOverrideUrlLoading(WebView view, String url) { return (false); } } } Page 1

(23)

MostrarInformacion.java package com.example.appieee; import java.io.FileInputStream; public class MostrarInformacion extends Activity { // Declaramos elementos para utilizarlos posteriormente private ListView lista; private Leer leerFicheros; private ArrayList<Informacion> informaciones = null; private FileInputStream fin; private CharSequence textoMasInformacion; private CharSequence textoTitulo; private Dialog d; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto‐generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.listado); // ///////////////////////////////////////////////////// // Esto es para leer el XML de noticias leerFicheros = new Leer(); try { fin = openFileInput("informacion.xml"); } catch (FileNotFoundException e1) { // TODO Auto‐generated catch block e1.printStackTrace(); } // colocamos con el método el archivo que queremos leer leerFicheros.setLeerArchivos(fin); // con este método devolvemos una lista de String que colocaremos en // menu informaciones = leerFicheros.leerInformacionXML(); // /////////////////////////////////////////////////// lista = (ListView) findViewById(R.id.ListView_listado); lista.setAdapter(new Lista_adaptador(this, R.layout.entrada, (ArrayList<?>) informaciones) { @Override public void onEntrada(Object entrada, View view) { // TODO Auto‐generated method stub if (entrada != null) { TextView texto_superior_entrada = (TextView) view .findViewById(R.id.textView_superior); if (texto_superior_entrada != null) texto_superior_entrada.setText(((Informacion) entrada) .getTitulo()); TextView texto_inferior_entrada = (TextView) view .findViewById(R.id.textView_inferior); if (texto_inferior_entrada != null) texto_inferior_entrada.setText(((Informacion) entrada) .getDescripcion()); ////////////////////////////////////////////////////////////

(24)

MostrarInformacion.java //Asignamos la imagen en información ImageView img= (ImageView)view.findViewById(R.id.imageView_imagen); img.setImageResource(R.drawable.informacion_util); //Mostramos la imagen  que se encuentra al lado de la información util } } }); lista.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> pariente, View view, int posicion, long id) { Informacion elegida = (Informacion) pariente .getItemAtPosition(posicion); textoTitulo = elegida.getTitulo(); textoMasInformacion = elegida.getMasInformacion(); d = crearDialogoInformacion(); d.show(); } }); } private Dialog crearDialogoInformacion() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(textoTitulo); builder.setMessage(textoMasInformacion); builder.setPositiveButton("OK", new OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); return builder.create(); } } Page 2

(25)

MostrarContacto.java package com.example.appieee; import java.io.FileInputStream; public class MostrarContacto extends Activity{ // Declaramos elementos para utilizarlos posteriormente private ListView lista; private Leer leerFicheros; private ArrayList<Contacto> contactos = null; private FileInputStream fin; private String [] listaDeVerdad; private Dialog d; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto‐generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.listado); // ///////////////////////////////////////////////////// // Esto es para leer el XML de contactos leerFicheros = new Leer(); try { fin = openFileInput("contacto.xml"); } catch (FileNotFoundException e1) { // TODO Auto‐generated catch block e1.printStackTrace(); } // colocamos con el método el archivo que queremos leer leerFicheros.setLeerArchivos(fin); // con este método devolvemos una lista de String que colocaremos en // menu contactos = leerFicheros.leerContactoXML(); // /////////////////////////////////////////////////// lista = (ListView) findViewById(R.id.ListView_listado); lista.setAdapter(new Lista_adaptador(this, R.layout.entrada, (ArrayList<?>) contactos) { @Override public void onEntrada(Object entrada, View view) { // TODO Auto‐generated method stub if (entrada != null) { TextView texto_superior_entrada = (TextView) view .findViewById(R.id.textView_superior); if (texto_superior_entrada != null) texto_superior_entrada.setText(((Contacto) entrada) .getNombre()); TextView texto_inferior_entrada = (TextView) view .findViewById(R.id.textView_inferior); if (texto_inferior_entrada != null) texto_inferior_entrada.setText(((Contacto) entrada) .getEntidad());

(26)

MostrarContacto.java ImageView img=  (ImageView)view.findViewById(R.id.imageView_imagen); img.setImageResource(R.drawable.contactos); //Mostramos la imagen  que se encuentra al lado del contacto } } }); lista.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> pariente, View view, int posicion, long id) { Contacto elegida = (Contacto) pariente .getItemAtPosition(posicion); listaDeVerdad= elegida.getLista(); d = crearDialogoSeleccion(); d.show(); } }); } private Dialog crearDialogoSeleccion(){     AlertDialog.Builder builder = new AlertDialog.Builder(this);     builder.setTitle("Contacto");     builder.setItems(listaDeVerdad, new DialogInterface.OnClickListener() {         public void onClick(DialogInterface dialog, int item) {       Log.i("Dialogos", "Opción elegida: " + listaDeVerdad[item]);         }     });     return builder.create(); } } Page 2

(27)

Noticia.java package com.example.appieee; public class Noticia { // Declaración de variables del objeto Noticia     private String titulo;     private String link;     private String descripcion;     private String guid;     private String fecha;     private String urlImage;     private String numeroFoto;      // Definimos métodos get          public String getNumeroFoto() { return numeroFoto; } public void setNumeroFoto(String numeroFoto) { this.numeroFoto = numeroFoto; } public String getUrlImage() { return urlImage; } public String getTitulo() {         return titulo;     }       public String getLink() {         return link;     }       public String getDescripcion() {         return descripcion;     }       public String getGuid() {         return guid;     }       public String getFecha() {         return fecha;     }       // Definimos métodos set          public void setUrlImage(String urlImage) { this.urlImage = urlImage; }       public void setTitulo(String t) {             titulo = t;     }       public void setLink(String l) {         link = l;     }       public void setDescripcion(String d) {

(28)

Noticia.java         descripcion = d;     }       public void setGuid(String g) {         guid = g;     }       public void setFecha(String f) {         fecha = f;     }      } Page 2

(29)

Programa.java package com.example.appieee; public class Programa { //Declaramos variables private String fecha;     private String tema;     private String conferencia;     private String ponentes;            private int aux=0; // Variable auxiliar inicializada a 0     private String[] hor = new String [100];  // Declaración de Array de cadena de caracteres  con valor máximo de 100       private String cadena;     private String[] devolver; // Declaración de Array de cadena de caracteres sin valor  definido               //Definimos los métodos Get y Set      public String getFecha() { return fecha; } public void setFecha(String fecha) { this.fecha = fecha; } public String getTema() { return tema; } public void setTema(String tema) { this.tema = tema; } public String getConferencia() { return conferencia; } public void setConferencia(String conferencia) { this.conferencia = conferencia; } public String getPonentes() { return ponentes; } public void setPonentes(String ponentes) { this.ponentes = ponentes; setCadena(); // Llamamos a setCadena }     public void setCadena(){ cadena= conferencia+ "\n\n" +ponentes; hor[aux]=cadena; // Pasamos la cadena al array hor aux++; // Aumentamos en 1 el contador de aux } //Este método controla la lista para sólo mostrar los elementos que de verdad existen public String [] getLista(){ devolver = new String [aux]; //Inicilizamos devolver con la variable auxiliar, que le  dice cuantos elementos queremos que haya en la lista for(int i=0;i<devolver.length;i++){ //Hace un recorrido en el array que se devolverá.  devolver.lenght nos devuelve la dimensión del array       if(hor[i]!=null){       // Controla que el array hor no sea nulo        devolver[i]=hor[i];         // De no serlo el dato de hor pasa a devolver       }

(30)

Programa.java } return devolver;      //Devuelve devolver } } Page 2

(31)

Texto.java package com.example.appieee; public class Texto { // Definimos variables private String titulo; private String descripcion; private String autor; //Definimos métodos Get y Set public String getTitulo() { return titulo; } public void setTitulo(String titulo) { this.titulo = titulo; } public String getDescripcion() { return descripcion; } public void setDescripcion(String descripcion) { this.descripcion = descripcion; } public String getAutor() { return autor; } public void setAutor(String autor) { this.autor = autor; } }

(32)

Mapa.java package com.example.appieee; public class Mapa { // Definimos las variables private String sitio; private String ciudad; // Definimos métodos Get and Set public String getSitio() { return sitio; } public void setSitio(String sitio) { this.sitio = sitio; } public String getCiudad() { return ciudad; } public void setCiudad(String ciudad) { this.ciudad = ciudad; } } Page 1

(33)

Informacion.java package com.example.appieee; public class Informacion { //Definimos variables private String titulo; private String descripcion; private String masInformacion; //Definimso métodos Get y Set public String getTitulo() { return titulo; } public void setTitulo(String titulo) { this.titulo = titulo; } public String getDescripcion() { return descripcion; } public void setDescripcion(String descripcion) { this.descripcion = descripcion; } public String getMasInformacion() { return masInformacion; } public void setMasInformacion(String masInformacion) { this.masInformacion = masInformacion; } }

(34)

Contacto.java package com.example.appieee; public class Contacto { // Definimos variables private String nombre; private String entidad; private String direccion; private String email; private String telefonos; private String otraInformacion; private int aux=0; // Definimos variable auxiliar     private String[] datos = new String [4]; // Creamos un vector llamado datos y lo  inicializamos a 4 porque son los 4 datos que queremos que estén          //Declaramos métodos Get y Set public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getEntidad() { return entidad; } public void setEntidad(String entidad) { this.entidad = entidad; } public String getDireccion() { return direccion; } public void setDireccion(String direccion) { this.direccion = direccion; datos[aux]=direccion; aux++; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; datos[aux]=email; aux++; } public String getTelefonos() { return telefonos; } public void setTelefonos(String telefonos) { this.telefonos = telefonos; datos[aux]=telefonos; aux++; } public String getOtraInformacion() { return otraInformacion; } public void setOtraInformacion(String otraInformacion) { this.otraInformacion = otraInformacion; datos[aux]=otraInformacion; Page 1

(35)

Contacto.java aux++; } public String [] getLista(){ //Creamos el método getLista return datos; } }

(36)

Bajada.java package com.example.appieee; import java.io.File; public class Bajada { @SuppressWarnings("unused") public void setGuardaXML(String pagina, String nombreArchivo, String fileDir) {//Este  método descarga todos los archivos del programa try { URL url = new URL(pagina); // crea una nueva conexión HttpURLConnection urlConnection = (HttpURLConnection) url .openConnection(); urlConnection.connect();//conectamos //Creamos un nuevo fichero, especificamos la ruta y el nombre del archivo //con el que queremos salvar el archivo File file = new File(fileDir, nombreArchivo); //Esto será usado para escribir los datos descargados en el archivo que hemos  creamos FileOutputStream fileOutput = new FileOutputStream(file); //Esto será usado para leer los datos desde internet InputStream inputStream = urlConnection.getInputStream(); //Variable para almacenar el total de bytes descargados int downloadedSize = 0; // creación del buffer... byte[] buffer = new byte[1024]; int bufferLength = 0; // usado para almacenar temporalmente el tamaño del buffer //ahora, lee el buffer de entrada y escribe el contenido en el archivo while ((bufferLength = inputStream.read(buffer)) > 0) { fileOutput.write(buffer, 0, bufferLength); downloadedSize += bufferLength; } //cierra la salida de datos cuando acabe fileOutput.close(); // por si hay errores } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } Page 1

(37)

Leer.java package com.example.appieee; import java.io.FileInputStream; public class Leer { private FileInputStream fin;//Este será nuestro archivo que leeremos private ArrayList<String> itemMenu; private String aux; public void setLeerArchivos(FileInputStream fin) {//Este método leerá el archivo que  vayamos a leer this.fin = fin; } public ArrayList<String> getLeerMenuXML() { XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(fin, "UTF‐8"); int event = parser.next(); while (event != XmlPullParser.END_DOCUMENT) { if (event == XmlPullParser.START_TAG && parser.getName().equals("menu")) { itemMenu = new ArrayList<String>(); aux = "menuAbierto"; }// cerramos el if de ITEM if (event == XmlPullParser.TEXT && parser.getText().trim().length() != 0 && aux.equals("menuAbierto")) { itemMenu.add(parser.getText()); } if (event == XmlPullParser.END_TAG && parser.getName().equals("menu")) { aux = "menuCerrado"; } event = parser.next(); }// cierre del while fin.close(); } catch (Exception e) { e.printStackTrace(); } // Devolvemos la lista de string return itemMenu; } public ArrayList<Noticia> leerNoticiaXML() { ArrayList<Noticia> sumaNoticias = new ArrayList<Noticia>(); Noticia noticiaActual = null; String titulo = null; int j=0; XmlPullParser parser = Xml.newPullParser();

(38)

Leer.java try { parser.setInput(fin, "UTF‐8"); int event = parser.next(); while (event != XmlPullParser.END_DOCUMENT) { if (event == XmlPullParser.START_TAG && parser.getName().equals("item")) { // Creamos una nueva noticia noticiaActual = new Noticia(); }// cerramos el if de ITEM // control de que guardara la varible del titulo para saber cual // utilizamos en cada momento else if (event == XmlPullParser.START_TAG && parser.getName().equals("title")) { titulo = parser.getName(); } else if (event == XmlPullParser.START_TAG && parser.getName().equals("description")) { titulo = parser.getName(); }else if (event == XmlPullParser.START_TAG && parser.getName().equals("enclosure")) { for (int i = 0; i < parser.getAttributeCount(); i++) { if(parser.getAttributeName(i).equals("url")){ noticiaActual.setUrlImage(parser.getAttributeValue(i)); noticiaActual.setNumeroFoto("foto"+j+".png");//Para ponerle un  nombre a las url que tienen foto j++; } } } if (event == XmlPullParser.TEXT && parser.getText().trim().length() != 0 && noticiaActual != null) { if (titulo.equals("title")) { noticiaActual.setTitulo(parser.getText()); titulo = ""; } else if (titulo.equals("description")) { noticiaActual.setDescripcion(parser.getText()); titulo = ""; } }// cierra el if de noticiaActual if (event == XmlPullParser.END_TAG && parser.getName().equals("item")) { // aqui añadimos la nueva noticia a la lista. sumaNoticias.add(noticiaActual); noticiaActual = null; } event = parser.next(); }// cierre del while fin.close(); } catch (Exception e) { e.printStackTrace(); Page 2

(39)

Leer.java } return sumaNoticias; } public ArrayList<Programa> leerProgramaXML() { ArrayList<Programa> sumaPrograma = new ArrayList<Programa>(); Programa programaActual = null; String titulo = null; XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(fin, "UTF‐8"); int event = parser.next(); while (event != XmlPullParser.END_DOCUMENT) { if (event == XmlPullParser.START_TAG && parser.getName().equals("dia")) { // Creamos una nueva noticia programaActual = new Programa(); }// cerramos el if de ITEM // control de que guardara la varible del titulo para saber cual // utilizamos en cada momento else if (event == XmlPullParser.START_TAG && parser.getName().equals("fecha")) { titulo = parser.getName(); } else if (event == XmlPullParser.START_TAG && parser.getName().equals("tema")) { titulo = parser.getName(); } else if (event == XmlPullParser.START_TAG && parser.getName().equals("conferencia")) { titulo = parser.getName(); } else if (event == XmlPullParser.START_TAG && parser.getName().equals("ponentes")) { titulo = parser.getName(); } if (event == XmlPullParser.TEXT && parser.getText().trim().length() != 0 && programaActual != null) { if (titulo.equals("fecha")) { programaActual.setFecha(parser.getText()); titulo = ""; } else if (titulo.equals("tema")) { programaActual.setTema(parser.getText()); titulo = ""; } else if (titulo.equals("conferencia")) { programaActual.setConferencia(parser.getText()); titulo = ""; } else if (titulo.equals("ponentes")) { programaActual.setPonentes(parser.getText()); titulo = ""; } }// cierra el if de noticiaActual if (event == XmlPullParser.END_TAG && parser.getName().equals("dia")) {

(40)

Leer.java // aqui añadimos la nueva noticia a la lista. sumaPrograma.add(programaActual); programaActual = null; } event = parser.next(); }// cierre del while fin.close(); } catch (Exception e) { e.printStackTrace(); } return sumaPrograma; } public ArrayList<Texto> leerTextoXML() { ArrayList<Texto> sumaTexto = new ArrayList<Texto>(); Texto textoActual = null; String titulo = null; XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(fin, "UTF‐8"); int event = parser.next(); while (event != XmlPullParser.END_DOCUMENT) { if (event == XmlPullParser.START_TAG && parser.getName().equals("textos")) { // Creamos una nueva noticia textoActual = new Texto(); }// cerramos el if de ITEM // control de que guardara la varible del titulo para saber cual // utilizamos en cada momento else if (event == XmlPullParser.START_TAG && parser.getName().equals("titulo")) { titulo = parser.getName(); } else if (event == XmlPullParser.START_TAG && parser.getName().equals("descripcion")) { titulo = parser.getName(); } else if (event == XmlPullParser.START_TAG && parser.getName().equals("autor")) { titulo = parser.getName(); } if (event == XmlPullParser.TEXT && parser.getText().trim().length() != 0 && textoActual != null) { if (titulo.equals("titulo")) { textoActual.setTitulo(parser.getText()); titulo = ""; } else if (titulo.equals("descripcion")) { textoActual.setDescripcion(parser.getText()); titulo = ""; } else if (titulo.equals("autor")) { Page 4

(41)

Leer.java textoActual.setAutor(parser.getText()); titulo = ""; } }// cierra el if de noticiaActual if (event == XmlPullParser.END_TAG && parser.getName().equals("textos")) { // aqui añadimos la nueva noticia a la lista. sumaTexto.add(textoActual); textoActual = null; } event = parser.next(); }// cierre del while fin.close(); } catch (Exception e) { e.printStackTrace(); } return sumaTexto; } public ArrayList<Mapa> leerMapaXML() { ArrayList<Mapa> sumaMapa = new ArrayList<Mapa>(); Mapa mapaActual = null; String titulo = null; XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(fin, "UTF‐8"); int event = parser.next(); while (event != XmlPullParser.END_DOCUMENT) { if (event == XmlPullParser.START_TAG && parser.getName().equals("mapa")) { // Creamos una nueva noticia mapaActual = new Mapa(); }// cerramos el if de ITEM // control de que guardara la varible del titulo para saber cual // utilizamos en cada momento else if (event == XmlPullParser.START_TAG && parser.getName().equals("sitio")) { titulo = parser.getName(); } else if (event == XmlPullParser.START_TAG && parser.getName().equals("ciudad")) { titulo = parser.getName(); } if (event == XmlPullParser.TEXT && parser.getText().trim().length() != 0 && mapaActual != null) { if (titulo.equals("sitio")) { mapaActual.setSitio(parser.getText());

(42)

Leer.java titulo = ""; } else if (titulo.equals("ciudad")) { mapaActual.setCiudad(parser.getText()); titulo = ""; } }// cierra el if de noticiaActual if (event == XmlPullParser.END_TAG && parser.getName().equals("mapa")) { // aqui añadimos la nueva noticia a la lista. sumaMapa.add(mapaActual); mapaActual = null; } event = parser.next(); }// cierre del while fin.close(); } catch (Exception e) { e.printStackTrace(); } return sumaMapa; } public ArrayList<Informacion> leerInformacionXML() { ArrayList<Informacion> sumaInformacion = new ArrayList<Informacion>(); Informacion informacionActual = null; String titulo = null; XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(fin, "UTF‐8"); int event = parser.next(); while (event != XmlPullParser.END_DOCUMENT) { if (event == XmlPullParser.START_TAG && parser.getName().equals("item")) { // Creamos una nueva noticia informacionActual = new Informacion(); }// cerramos el if de ITEM // control de que guardara la varible del titulo para saber cual // utilizamos en cada momento else if (event == XmlPullParser.START_TAG && parser.getName().equals("titulo")) { titulo = parser.getName(); } else if (event == XmlPullParser.START_TAG && parser.getName().equals("descripcion")) { titulo = parser.getName(); } else if (event == XmlPullParser.START_TAG && parser.getName().equals("mas_informacion")) { titulo = parser.getName(); } Page 6

(43)

Leer.java if (event == XmlPullParser.TEXT && parser.getText().trim().length() != 0 && informacionActual != null) { if (titulo.equals("titulo")) { informacionActual.setTitulo(parser.getText()); titulo = ""; } else if (titulo.equals("descripcion")) { informacionActual.setDescripcion(parser.getText()); titulo = ""; } else if (titulo.equals("mas_informacion")) { informacionActual.setMasInformacion(parser.getText()); titulo = ""; } }// cierra el if de noticiaActual if (event == XmlPullParser.END_TAG && parser.getName().equals("item")) { // aqui añadimos la nueva noticia a la lista. sumaInformacion.add(informacionActual); informacionActual = null; } event = parser.next(); }// cierre del while fin.close(); } catch (Exception e) { e.printStackTrace(); } return sumaInformacion; } public ArrayList<Contacto> leerContactoXML() { ArrayList<Contacto> sumaContacto = new ArrayList<Contacto>(); Contacto contactoActual = null; String titulo = null; XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(fin, "UTF‐8"); int event = parser.next(); while (event != XmlPullParser.END_DOCUMENT) { if (event == XmlPullParser.START_TAG && parser.getName().equals("contacto")) { // Creamos una nueva noticia contactoActual = new Contacto(); }// cerramos el if de ITEM // control de que guardara la varible del titulo para saber cual // utilizamos en cada momento else if (event == XmlPullParser.START_TAG && parser.getName().equals("nombre")) { titulo = parser.getName(); } else if (event == XmlPullParser.START_TAG && parser.getName().equals("entidad")) {

(44)

Leer.java titulo = parser.getName(); } else if (event == XmlPullParser.START_TAG && parser.getName().equals("direccion")) { titulo = parser.getName(); }else if (event == XmlPullParser.START_TAG && parser.getName().equals("email")) { titulo = parser.getName(); }else if (event == XmlPullParser.START_TAG && parser.getName().equals("telefonos")) { titulo = parser.getName(); }else if (event == XmlPullParser.START_TAG && parser.getName().equals("otra_informacion")) { titulo = parser.getName(); } if (event == XmlPullParser.TEXT && parser.getText().trim().length() != 0 && contactoActual != null) { if (titulo.equals("nombre")) { contactoActual.setNombre(parser.getText()); titulo = ""; } else if (titulo.equals("entidad")) { contactoActual.setEntidad(parser.getText()); titulo = ""; } else if (titulo.equals("direccion")) { contactoActual.setDireccion(parser.getText()); titulo = ""; }else if (titulo.equals("email")) { contactoActual.setEmail(parser.getText()); titulo = ""; }else if (titulo.equals("telefonos")) { contactoActual.setTelefonos(parser.getText()); titulo = ""; }else if (titulo.equals("otra_informacion")) { contactoActual.setOtraInformacion(parser.getText()); titulo = ""; } }// cierra el if de noticiaActual if (event == XmlPullParser.END_TAG && parser.getName().equals("contacto")) { // aqui añadimos la nueva noticia a la lista. sumaContacto.add(contactoActual); contactoActual = null; } event = parser.next(); }// cierre del while fin.close(); } catch (Exception e) { e.printStackTrace(); } return sumaContacto; } /////////////////////////////////////////////////////////////////////////////// Page 8

(45)

Leer.java //Este método nos devolverá verdadero o falso en caso de que en conexion.xml creado, ponga  true  public boolean getLeerConexion() { String aux=new String(); boolean resultado; XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(fin, "UTF‐8"); int event = parser.next(); if (event == XmlPullParser.START_TAG){ aux=parser.nextText().toString(); } fin.close(); } catch (Exception e) { e.printStackTrace(); } if(aux.equals("true")){ resultado = true; }else{ resultado = false; } return resultado; } }

(46)

Lista_adaptador.java package com.example.appieee; import java.util.ArrayList; /**   * Adaptador de ListView universal  *   */ public abstract class Lista_adaptador extends BaseAdapter {     private ArrayList<?> entradas;      private int R_layout_IdView;      private Context contexto;            public Lista_adaptador(Context contexto, int R_layout_IdView, ArrayList<?> entradas) {         super();         this.contexto = contexto;         this.entradas = entradas;          this.R_layout_IdView = R_layout_IdView;      }            @Override     public View getView(int posicion, View view, ViewGroup pariente) {         if (view == null) { LayoutInflater vi = (LayoutInflater)  contexto.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        view = vi.inflate(R_layout_IdView, null);          }         onEntrada (entradas.get(posicion), view);         return view;      } @Override public int getCount() {//Método que devuelve cuantas entradas tenemos en la lista return entradas.size(); } @Override public Object getItem(int posicion) {//Devuelve el Item que queramos return entradas.get(posicion); } @Override public long getItemId(int posicion) {//Devuelve el identificador del Item return posicion; } /** Devuelve cada una de las entradas con cada una de las vistas a la que debe de ser  asociada  * @param entrada La entrada que será la asociada a la view. La entrada es del tipo del  paquete/handler  * @param view View particular que contendrá los datos del paquete/handler  */ public abstract void onEntrada (Object entrada, View view);      } Page 1

(47)

                                                                                       

Código Fuente

XML

(48)

inicio.xml

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical" >     <ImageView         android:id="@+id/imageView1"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_marginBottom="240dp"         android:src="@drawable/logo_proyecto" />      <TextView          android:id="@+id/tvCreador"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:layout_alignParentBottom="true"          android:layout_centerHorizontal="true"          android:layout_marginBottom="18dp"          android:gravity="center"          android:text="@string/tvCreador"          android:textAlignment="center"          android:textStyle="bold" />      <ProgressBar          android:id="@+id/pbCarga"          style="?android:attr/progressBarStyleLarge"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:layout_above="@+id/tvCreador"          android:layout_centerHorizontal="true"          android:layout_marginBottom="74dp" /> </RelativeLayout> Page 1

(49)

activity_app_ieee.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/RelativeLayout1"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical"     android:paddingBottom="@dimen/activity_vertical_margin"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin"     tools:context=".AppIEEE" >     <TextView         android:id="@+id/tvNombreConfe"         android:layout_width="290dp"         android:layout_height="51dp"         android:layout_alignParentLeft="true"         android:layout_below="@+id/tvImagenConfe"         android:text="@string/tvNombreConfe"         android:textAlignment="center"         android:textStyle="bold"            android:gravity="center"           android:textSize="@dimen/activity_vertical_margin"          />     <ListView         android:id="@+id/lvOpciones"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:layout_alignParentLeft="true"         android:layout_below="@+id/tvNombreConfe"         android:layout_marginBottom="16dp" >     </ListView>     <TextView         android:id="@+id/tvSiglasConfe"         android:layout_width="wrap_content"         android:layout_height="51dp"         android:layout_alignRight="@+id/tvNombreConfe"         android:layout_toRightOf="@+id/tvImagenConfe"         android:text="@string/tvSiglasConfe"         android:textAlignment="center"         android:textStyle="bold"         android:gravity="center"         android:textSize="@dimen/activity_vertical_margin" />     <ImageView         android:id="@+id/tvImagenConfe"         android:layout_width="100dp"         android:layout_height="200dp"         android:layout_alignBottom="@+id/tvSiglasConfe"         android:layout_alignLeft="@+id/tvNombreConfe"         android:src="@drawable/emc2013" /> </RelativeLayout>

Referencias

Documento similar