如何清空android ListView控件的内容

lzc_3486138 2012-10-04 09:24:25
代码如下:
BaseAdapter ba=new BaseAdapter()
{

public int getCount() {
// TODO Auto-generated method stub
return count;
}

public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}

public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}

public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
LinearLayout ll=new LinearLayout(ShowBusActivity.this);
ll.setOrientation(LinearLayout.HORIZONTAL);
TextView tv1=new TextView(ShowBusActivity.this);
tv1.setText(routeID);
tv1.setTextSize(12);
tv1.setWidth(120);
tv1.setTextColor(Color.WHITE);
ll.addView(tv1);
TextView tv2=new TextView(ShowBusActivity.this);
tv2.setText(tempBus[arg0].strCarId);
tv2.setTextSize(12);
tv2.setWidth(120);
tv2.setTextColor(Color.WHITE);
ll.addView(tv2);
TextView tv3=new TextView(ShowBusActivity.this);
tv3.setText(tempBus[arg0].distance);
tv3.setTextSize(12);
tv3.setWidth(120);
tv3.setTextColor(Color.WHITE);
ll.addView(tv3);
TextView tv4=new TextView(ShowBusActivity.this);
tv4.setText(tempBus[arg0].direction);
tv4.setTextSize(12);
tv4.setWidth(120);
tv4.setTextColor(Color.WHITE);
ll.addView(tv4);
return ll;
}};

lv.setAdapter(ba);
程序中tempBus中的内容是有使用者更新的,我想在每次更新时只显示更新后的内容,可当程序运行时每更新一次就会在ListVeiw中再加一次更新后的内容,未更新前的内容也显示在ListView 上。请高手们帮帮忙,要怎样在更新数据前把ListView中的内容清空?
...全文
42665 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hokas 2015-06-12
  • 打赏
  • 举报
回复 1
list.clean 清空集合里的元素 在调用 adapter。notif。。。 刷新
qingdujun 2015-01-12
  • 打赏
  • 举报
回复
引用 12 楼 faqfaq3 的回复:
listView.setAdapter(null);//实测可清空
程序直接崩掉了
huya-wanghg 2014-09-12
  • 打赏
  • 举报
回复
在刷新前 清除list集合 就行了
gugu199309 2014-08-14
  • 打赏
  • 举报
回复
太棒了。。。
faqfaq3 2014-07-29
  • 打赏
  • 举报
回复
listView.setAdapter(null);//实测可清空
我想当好人 2014-07-22
  • 打赏
  • 举报
回复
有一个listAdapter.notifyDataSetChanged() 的方法 你百度一下可以试试 只需要注意adapter中list是同一个对象
lxylance 2014-04-25
  • 打赏
  • 举报
回复
赞一个,困扰我两三天的问题,今天解决了,感谢楼主的贴,已经感谢@Flyinghoneybee 的回答,之前一直以为清空listview的数据,原来清空的是list集合
Jason@Lai 2014-04-22
  • 打赏
  • 举报
回复
把 adapter.clear() 就可以啦
Zhangjind 2014-04-11
  • 打赏
  • 举报
回复
如果item包换imageview呢,每个imageview的图片都是一样的,也用arrayadapter?不用的话,clear能干净么?
xun-ming 2013-08-26
  • 打赏
  • 举报
回复
感谢楼主以及@Flyinghoneybee这位朋友,解决了困扰我三天的问题 主要是listview刷新的问题,我一直不能清空原先已添加的数据,再次点击只会在原有基础上添加,之前也在其他地方看到过list.clear()这个方法,但当时自以为是地认为是listview没有这个方法,只有removeAllViews和clearFocus等方法,后来看到此帖后,百度了下这个方法,方才明白list指的是list<>集合,所以在我的程序中就是我定义的listData了 原谅我这么多废话,哈哈,新手小白路过
如意网络科技 2012-10-06
  • 打赏
  • 举报
回复
作者应该用适配器来添加ListView的Item比较好吧

给你提供一个思路:
1,当我们要加载item的时候,首先把 list清空

list.clear();

适配器

adapter1 =new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter1);

这样加载以后就把Listview 中的数据清空了

2,然后再加载我们想要的数据

list.add("a");
list.add("c");
list.add("b");
list.add("a");
list.add("c");
list.add("b");

适配器

adapter1 =new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter1);
adapter1 =new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter1);

这样就可以清空以前的数据而得到我们更新的结果
lzc_3486138 2012-10-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

ListView.removeAllViews();
[/Quote]
加了这个函数报错了。有没有那个函数能判断ListView中是否有数据。
lzc_3486138 2012-10-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

tempBus更新是吧!你把上一次显的tempBus[]清空不就行了!你那里面的TextView要清除轻型?
[/Quote]
tempBus是一个类数组,里面存放的是类,修改的是类的成员变量。我是想在要显示ListView的内容是把之前ListView 中的内容清除了。
WindKun 2012-10-04
  • 打赏
  • 举报
回复
tempBus更新是吧!你把上一次显的tempBus[]清空不就行了!你那里面的TextView要清除轻型?
AMinfo 2012-10-04
  • 打赏
  • 举报
回复
ListView.removeAllViews();
lzc_3486138 2012-10-04
  • 打赏
  • 举报
回复
有人在吗?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧