在这里,我宣布了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(它是空的)。你能告诉我为什么吗?
答案 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();