Creación de un objeto accesible por todas las actividades en Android

Estoy tratando de crear un ArrayList de datos que contienen objetos (como una lista de direcciones y propiedades (bastante complejo)) y me pregunto: ¿Cómo puedo hacer un objeto accesible (y editable) por todas las actividades y no sólo el que era Instanciado en

Básicamente esto:

  1. Crear matriz en la actividad 1
  2. Acceder a la misma matriz en la actividad 2 y 3
  3. ???
  4. Lucro.

La forma más sencilla de hacerlo es creando un Singleton. Es un tipo de objeto que sólo se puede crear una vez, y si intenta acceder de nuevo, devolverá la instancia existente del objeto. Dentro de esto usted puede sostener su arsenal.

public class Singleton { private static final Singleton instance = new Singleton(); // Private constructor prevents instantiation from other classes private Singleton() { } public static Singleton getInstance() { return instance; } } 

Lea más acerca de singleton: http://en.wikipedia.org/wiki/Singleton_pattern

Puede extender la clase de aplicación. Y agrega tus matrices allí.

Puede acceder a la instancia de la clase mediante este comando

 MyApplication appContext = (MyApplication)getApplicationContext(); 

Bueno, puede crear una clase Constant y declarar ArrayList como una variable estática.

1

  Class ConstantCodes{ public static ArrayList<MyClass> list = new ArrayList<MyClass>; } 

Esto será accesible desde cualquier lugar que desee por ConstantCodes.list

2.) Usted puede extender su clase por la clase de la aplicación como esto

 class Globalclass extends Application { private String myState; public String getState(){ return myState; } public void setState(String s){ myState = s; } } class TempActivity extends Activity { @Override public void onCreate(Bundle b){ ... MyApp appState = ((MyApp)getApplicationContext()); String state = appState.getState(); ... } } 

Deberías hacerla estática y acceder a ella desde cualquier otra actividad …..

¿Qué tal usar una palabra clave estática?

public static SomeClass someObject

En su clase de actividad que inicia su objeto

1- En su Activity1 , declare su matriz en estática pública

 public static ArrayList<HashMap<String, String>> myArray = new ArrayList<HashMap<String, String>>(); 

2- En su Activity2 , Activity3 , etc. acceso a su ArrayList

 Activity1.myArray 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.