创建Android中所有活动均可访问的对象

时间:2011-09-01 12:33:29

标签: android

我正在尝试创建一个包含对象的数据的ArrayList(就像一个地址和属性列表(相当复杂)),我想知道:如何让所有活动都可以访问(和编辑)对象,而不仅仅是一个是在那里实现的?

基本上这个:

  1. 在活动1中创建数组
  2. 访问活动2和3中的相同数组
  3. ???
  4. 利润。

7 个答案:

答案 0 :(得分:11)

最简单的方法是创建一个Singleton。它是一种只能创建一次的对象,如果你再次尝试访问它,它将返回该对象的现有实例。 在这里你可以拿着你的阵列。

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;
    }

}

了解有关单身人士的更多信息: http://en.wikipedia.org/wiki/Singleton_pattern

答案 1 :(得分:6)

您可以扩展应用程序类。并在那里添加你的数组。

您可以使用此命令

访问该类的实例
MyApplication appContext = (MyApplication)getApplicationContext();

答案 2 :(得分:2)

您可以创建一个Constant类,并将ArrayList声明为静态变量。

1。)

 Class ConstantCodes{

         public static ArrayList<MyClass> list = new ArrayList<MyClass>;
    }

只需ConstantCodes.list

即可随时随地访问

2。)您可以按照此类

扩展您的类
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();
    ...
  }
}

答案 3 :(得分:0)

你应该把它变成静态的并从任何其他活动中访问它......

答案 4 :(得分:0)

如何使用静态关键字?

public static SomeClass someObject

在您的活动类中启动您的对象

答案 5 :(得分:0)

您可以在其他Java文件旁边创建一个Java文件x。 x文件包含静态方法,该方法用于访问类方法而无需实例化它。 现在创建一个名为createVariable()的方法,并声明要使其变为全局变量。 现在,创建一个名为getVariable()的方法,该方法返回Global变量。

此时要创建全局变量,请调用className.createVariable()。

要访问该变量,请调用className.getVariable()。 这是我的数据库类示例。

public class GlobalDatabaseHelper{

    static DatabaseHelper mydb;
    public static DatabaseHelper createDatabase(Context context)
    {
        mydb = new DatabaseHelper(context);
        return mydb;
    }

    public static DatabaseHelper returnDatabase()
    {
        return mydb;
    }
}

答案 6 :(得分:-1)

1-在 Activity1 中,在公共静态

中添加您的数组
public static ArrayList<HashMap<String, String>> myArray = new ArrayList<HashMap<String, String>>();

2-在 Activity2 Activity3 访问您的ArrayList

Activity1.myArray