Insertar datos en el contexto de aplicación de Android

David Galisteo Cantero

¡Hola! Hoy estamos de nuevo con el mundo Android, concretamente vamos a aprender cómo introducir datos en el contexto de una aplicación para poder usarlos en cualquier parte de nuestro código.

Pueden darse casos en los que necesitamos pasar información de una actividad a otra de nuestra aplicación, y, si tenemos un objeto algo pesado, no es conveniente pasarlo cómo parámetro en el Intent.

Aquí tendríamos dos opciones, o pasar en el intent el “id” del objeto en cuestión, y posteriormente recuperarlo, por ejemplo, de una base de datos, o insertar el objeto en el contexto de la aplicación y obtenerlo de ahí mismo en otra actividad.

Bien, vamos al lío, lo primero que debemos hacer es crear una nueva clase que extienda de “Application”, e implementar los distintos métodos para la obtención de atributos, por ejemplo:

public class GlobalPreferencias extends Application{
 
   private Preferencias preferencias;
 
   public Preferencias getPreferencias(){
      return preferencias;
   }
 
   public void setPreferencias(Preferencias p){
      preferencias = p;
   }
}

Ya tenemos lista nuestra clase, como podrás imaginar, la clase ‘Preferencias’ puede tener cualquier cosa, por ejemplo, el tamaño de letra seteado por el usuario:

public class Preferencias{
 
   private float tamLetra;
 
   public float getTamLetra(){
      return tamLetra;
   }
 
   public void setTamLetra(float tam){
      tamLetra = tam;
   }
}

Ya tenemos listo el objeto que guardaremos en el contexto global, ahora solo queda ver cómo obtenerlo y cómo introducirlo.

Para obtenerlo, normalmente lo haremos en el onCreate() de alguna actividad:

GlobalPreferencias preferencias_global = ((GlobalPreferencias) getApplicationContext());
preferencias_global.getPreferencias().getTamLetra();

Para introducirlo, normalmente lo haremos en el onPause() de una actividad, ya que este método es llamado cuando pasamos a otra actividad:

Preferencias pref = new Preferecias();
prefererencias_global.setPreferencias(pref);

Podemos setear un nuevo objeto ‘Preferencias’ o, simplemente, modificar los atributos del existente:

preferencias_global.getPreferencias().setTamLetra(40);

Como apunte, comentar que no es conveniente insertar muchos datos en este espacio de memoria, utilízalo siempre con cautela y solo para lo necesario.

Espero que os haya sido de ayuda, para cualquier cosa espero sus comentarios.

HackSaludos!

Publicado el 26-08-2014

Compartelo!

Deja un comentario

Comentanos

*
Ir arriba de la pagina