如何重置listview?

时间:2012-05-14 02:21:48

标签: android listview

我在此活动中有一个列表视图

首先,我将使用此

显示列表视图
adapter = new CustomAdapter_LatestNews(this, title, category, date,
            imagepath);     

lv.addFooterView(constant.AdMob());
lv.setAdapter(adapter);

我正在使用扩展基础适配器的自定义适配器。

public View getView(int position, View convertView, ViewGroup parent)

在此活动中,我有一个刷新按钮,它是更新数据并回调相同的活动。

startActivity(new Intent(Main_AllLatestNews.this, Main_AllLatestNews.class));
finish(); 

似乎getview正在重用数据?

按下刷新按钮之前

  

结果> image 0 0 0 0 1 0 1 0 0 0正确显示(无论我如何滚动)

按下刷新按钮

  

结果>图像1 1 1 1 1 1 1 1 1 1显示不正确(滚动将导致此情况)

如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

你可以试试&它对我有用:

列表视图和适配器的初始化:

listView = (ListView) findViewById(R.id.list_view);
adapter = new MessageAdapter(this);
listView.setAdapter(adapter);

重置列表和适配器阵列:

listView.removeAllViewsInLayout();
listMessages.clear();

答案 1 :(得分:0)

刷新列表视图的正确方法不是重新启动活动。

而不是 - 在刷新逻辑列表/或适配器使用的数据之后,您需要做的就是调用:

adapter.notifyDataSetChanged();