【发布时间】:2016-10-31 12:56:23
【问题描述】:
您好,我有一个全局变量类。该类中的一个函数用于清除我的 ArrayList 之一。唯一的问题是它正在清除我的两个 ArrayLists,我不知道为什么。假设要清除的只是 m_listItems。
在清除运行之前: http://i.stack.imgur.com/dN5n4.png
清除运行后:http://i.stack.imgur.com/5eKfj.png
此函数将 ArrayList“m_listItems”添加到双数组列表中。
public void addGrouptoList(){
ArrayList myArray = Global.m_listItems;
Global.groupCollection.add(myArray);
}
这个函数应该只清除 m_listItems 但它会清除两个:
public void ClearNameList(){
Global.m_listItems.clear();
}
这就是我创建两个 ArrayList 的方式
private static ArrayList<ArrayList<String>> groupCollection= new ArrayList<>();
private static ArrayList<String> m_listItems = new ArrayList<String>();
任何帮助将不胜感激。无论是变通还是为什么它搞砸了!
编辑 我做了很多谷歌搜索,我认为问题是因为我正在添加(global.m_list_items),所以当我清除 m_list_items 时,它也会在我的另一个数组中清除它......有解决方法吗?我读到静态是导致问题的原因,但我的全局变量需要它。我似乎无法在 google 中找到解决方法。
谢谢!
【问题讨论】:
-
为什么将arraylist设为全局?
-
双数组列表存储组,其中存储每个组成员的名称。我需要跨活动访问这些数据,而我能找到的唯一方法是使用全局类。我确信他们是更好的方法来做到这一点(我愿意听),但我是 Java android 的新手程序员并且正在做一个类项目。