无法将ArrayList发送到其他非活动类:

时间:2015-03-03 12:36:15

标签: java android arraylist

在这里,我宣布了arraylist并为其增加了价值:

private ArrayList<String> act = new ArrayList<String>();
act.add("ds");

这里我正在创建返回arraylist的方法:

public ArrayList<String> getAct() {
        return act;
}

我在这里得到它:

private ArrayList<String> act = new MainActivity().getAct();

当我得到act的大小为0(它是空的)。你能告诉我为什么吗?

2 个答案:

答案 0 :(得分:0)

如果您正在使用构造new MainActivity().getAct(),则必须在Activity构造函数中填充数组。所以,如果你在生命周期中这样做,它将是空的。

最好使用静态工厂提供数组并稍后将其传递给您的活动。

答案 1 :(得分:0)

当您创建任何类的new实例时,所有非静态变量都会初始化为其默认值。如果您真的希望以这种方式获得ArrayList,则需要使用相同的Activity引用:

private ArrayList<String> act = mainActivity.getAct();

或者你需要制作变量static

private static ArrayList<String> act = new ArrayList<String>();

然后以下内容将起作用:

private ArrayList<String> act = new MainActivity().getAct();