在Android中将ArrayList传输到Global ArrayList

时间:2017-02-09 22:30:47

标签: java android arraylist

我创建了整个应用程序周期中不同步骤所需的全局变量。下面是GlobalVariable.java创建的:

import android.app.Application;

public class GlobalVariable extends Application {
    private String globalVariableOne;

    public String getGlobalVariableOne() {
        return globalVariableOne;
    }

    public void setGlobalVariableOne(String globalVariableOne) {
        this.globalVariableOne = globalVariableOne;
    }
}

然后,我可以使用以下代码轻松地从任何活动中获取和设置此全局变量。

final GlobalVariable globalVariable = (GlobalVariable) getApplicationContext();

//To Set the globalVariableOne Value in an Activity
globalVariable.setGlobalVariableOne("My Value");

//To Get the globalVariableOne Value in a
String readGlobalVariableOne = globalVariable.getGlobalVariableOne();

现在我在我的Activity中使用以下代码创建了一个ArrayList localArrayList

List<String> localArrayList = new ArrayList<String>();

int maxLength = "10";

for (int i = 0; i < maxLength; i++) {
    String valueOne = "Value "+i;
    String valueTwo = "Value "+i;

    localArrayList.add(valueOne));
    localArrayList.add(valueTwo);
}

我希望将此ArrayList存储为可由我的应用程序中的任何Activity访问和编辑的Global ArrayList。我不知道该怎么做。

任何人都可以帮我编辑我的GlobalVariable.java来定义Global ArrayList并指导我如何获取和设置这个全局ArrayList吗?

1 个答案:

答案 0 :(得分:1)

它应该是这样的:

public class GlobalVariable extends Application {
    private String globalVariableOne;
    private List<String> globalArrayList;

    public String getGlobalVariableOne() {
        return globalVariableOne;
    }

    public void setGlobalVariableOne(String globalVariableOne) {
        this.globalVariableOne = globalVariableOne;
    }

    public List<String> getGlobalArrayList() {
        return globalArrayList;
    }

    public void setGlobalArrayList(List<String> globalArrayList) {
        this.globalArrayList = globalArrayList;
    }
}

然后在你的代码中你可以这样做:

GlobalVariable myAppClass = (GlobalVariable)getApplicationContext();
//saving the list
myAppClass.setGlobalArrayList(/*put here the list to save*/);
//getting the list
List<String> globalArrayList = myAppClass.getGlobalArrayList();

但我真的不喜欢将每个全局变量放在自定义Application类中的方法......