在另一个类中引用ArrayList?的Java / Android的

时间:2014-11-05 02:25:03

标签: android arraylist

我需要一些数据管理方面的帮助。希望我能够很好地解释这一点。我在A类中创建并实例化一个ArrayList,但是我想在B类中显示数据。这比这更复杂,让我解释一下我的步骤。

我在A组中创建了一些setter和getter

public static void setArray(ArrayList<String> list) {
   ClassA.mList = list;
}

public static ArrayList<String> getArray() {
   return mList;
}

在A类中,我用一个项目mList.add(“item”)填充我的数组。现在我的列表中有一个项目(mList),我开始一个新的活动

Intent intent = new Intent(ClassA.this, ClassB.class);
startActivity(intent); 

我故意没有完成()这个活动。现在我在B级,我通过使用getter方法打印出数组中的第一项来测试数据是否仍然存在。

System.out.println("Data persists? " + ClassA.getArray().get(0));

到目前为止,一切正常。但现在我完成了()B类,它让我回到了A类。我在A的onResume()中添加了另一个项目到我的列表(mList),然后我再次开始第二个Activity(B类)。然后我使用递归检查我的arraylist中是否有两个项目,并且只有1.我还检查了onResume我是否可以打印出任何东西,并且mList的大小为0.我的猜测是它重新实例化了,并重置列表?

如何在离开Activity后再返回ArrayList中的数据?我希望每次返回A类时都能够向该arraylist添加/更新数据

提前谢谢

1 个答案:

答案 0 :(得分:2)

您不应使用静态方法在活动之间共享非静态数据。为此,请使用Intent作为临时存储数据。例如,您提供的可以参考putStringArrayListExtra()