【问题标题】:Referencing an ArrayListin another class? Java/Android在另一个类中引用 ArrayList? Java/安卓
【发布时间】:2014-11-05 02:25:02
【问题描述】:

我需要一些数据管理方面的帮助。希望我能很好地解释这一点。我在 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)中,然后我再次开始第二个活动(B 类)。然后我使用递归检查我的arraylist中是否有两个项目,并且只有1个。我还检查了onResume是否可以打印出任何内容,并且mList的大小为0。我的猜测是它重新实例化了,并重置列表?

如何在离开 Activity 然后返回后维护 ArrayList 中的数据?我希望能够在每次返回 A 类时向该数组列表添加/更新数据

提前谢谢你

【问题讨论】:

    标签: android arraylist


    【解决方案1】:

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

    【讨论】:

    • 让我试试这个。感谢您的建议!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    相关资源
    最近更新 更多