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