2012-04-10 120 views
0

我有一个ListView,一个ArrayList。从活动1中,我传递一些数据,例如公司的价格和名称。这些数据将存储在哈希表的ArrayList中。当我第一次将一些数据传递给包含ListView的第二个活动时,将在该列表中找到数据,但是当我回到第一个活动并再次传递一些信息时,旧数据仍将位于列表中。有没有任何可能的方法可以防止这种情况发生?例如,当我从activity2返回到activity1时,ListView将被擦除。清理数据的列表视图

谢谢!

+0

这很奇怪。当你回到第一个活动时,第二个活动应该和任何数据一起销毁。除了静态变量。你应该从你的两个活动中发布相关的代码。 – dmon 2012-04-10 15:22:49

+0

我应该说我没有任何onStart()或onDestory()方法。 – 2012-04-10 15:29:55

+0

没关系。 – dmon 2012-04-10 15:35:16

回答

2

你需要做什么: 在其持有的ListView活动 - 覆盖的onResume()方法:

@Override 
protected void onResume() { 
    super.onResume(); 

    mArrayList.clear(); 
    mAdapter.notifyDataSetChanged(); 
} 

如果不是很好的为你清除数组列表,这样你就可以做如下:

@Override 
protected void onResume() { 
    super.onResume(); 

    mListView.removeAllViews(); 
} 
+0

谢谢!这工作,除了我不得不改变方法onDestory(),否则列表不会显示任何内容。 – 2012-04-10 15:49:09

+0

欢迎你。我总是很乐意提供帮助。 – 2012-04-10 20:55:18