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中的内容清空?
16 个解决方案
#1
有人在吗?
#2
ListView.removeAllViews();
#3
tempBus更新是吧!你把上一次显的tempBus[]清空不就行了!你那里面的TextView要清除轻型?
#4
tempBus是一个类数组,里面存放的是类,修改的是类的成员变量。我是想在要显示ListView的内容是把之前ListView 中的内容清除了。
#5
加了这个函数报错了。有没有那个函数能判断ListView中是否有数据。
#6
作者应该用适配器来添加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);
这样就可以清空以前的数据而得到我们更新的结果
给你提供一个思路:
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);
这样就可以清空以前的数据而得到我们更新的结果
#7
感谢楼主以及@Flyinghoneybee这位朋友,解决了困扰我三天的问题
主要是listview刷新的问题,我一直不能清空原先已添加的数据,再次点击只会在原有基础上添加,之前也在其他地方看到过list.clear()这个方法,但当时自以为是地认为是listview没有这个方法,只有removeAllViews和clearFocus等方法,后来看到此帖后,百度了下这个方法,方才明白list指的是list<>集合,所以在我的程序中就是我定义的listData了
原谅我这么多废话,哈哈,新手小白路过
主要是listview刷新的问题,我一直不能清空原先已添加的数据,再次点击只会在原有基础上添加,之前也在其他地方看到过list.clear()这个方法,但当时自以为是地认为是listview没有这个方法,只有removeAllViews和clearFocus等方法,后来看到此帖后,百度了下这个方法,方才明白list指的是list<>集合,所以在我的程序中就是我定义的listData了
原谅我这么多废话,哈哈,新手小白路过
#8
如果item包换imageview呢,每个imageview的图片都是一样的,也用arrayadapter?不用的话,clear能干净么?
#9
把 adapter.clear() 就可以啦
#10
赞一个,困扰我两三天的问题,今天解决了,感谢楼主的贴,已经感谢@Flyinghoneybee 的回答,之前一直以为清空listview的数据,原来清空的是list集合
#11
有一个listAdapter.notifyDataSetChanged() 的方法 你百度一下可以试试 只需要注意adapter中list是同一个对象
#12
listView.setAdapter(null);//实测可清空
#13
太棒了。。。
#14
在刷新前 清除list集合 就行了
#15
程序直接崩掉了
#16
list.clean 清空集合里的元素
在调用 adapter。notif。。。 刷新
在调用 adapter。notif。。。 刷新
#1
有人在吗?
#2
ListView.removeAllViews();
#3
tempBus更新是吧!你把上一次显的tempBus[]清空不就行了!你那里面的TextView要清除轻型?
#4
tempBus是一个类数组,里面存放的是类,修改的是类的成员变量。我是想在要显示ListView的内容是把之前ListView 中的内容清除了。
#5
加了这个函数报错了。有没有那个函数能判断ListView中是否有数据。
#6
作者应该用适配器来添加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);
这样就可以清空以前的数据而得到我们更新的结果
给你提供一个思路:
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);
这样就可以清空以前的数据而得到我们更新的结果
#7
感谢楼主以及@Flyinghoneybee这位朋友,解决了困扰我三天的问题
主要是listview刷新的问题,我一直不能清空原先已添加的数据,再次点击只会在原有基础上添加,之前也在其他地方看到过list.clear()这个方法,但当时自以为是地认为是listview没有这个方法,只有removeAllViews和clearFocus等方法,后来看到此帖后,百度了下这个方法,方才明白list指的是list<>集合,所以在我的程序中就是我定义的listData了
原谅我这么多废话,哈哈,新手小白路过
主要是listview刷新的问题,我一直不能清空原先已添加的数据,再次点击只会在原有基础上添加,之前也在其他地方看到过list.clear()这个方法,但当时自以为是地认为是listview没有这个方法,只有removeAllViews和clearFocus等方法,后来看到此帖后,百度了下这个方法,方才明白list指的是list<>集合,所以在我的程序中就是我定义的listData了
原谅我这么多废话,哈哈,新手小白路过
#8
如果item包换imageview呢,每个imageview的图片都是一样的,也用arrayadapter?不用的话,clear能干净么?
#9
把 adapter.clear() 就可以啦
#10
赞一个,困扰我两三天的问题,今天解决了,感谢楼主的贴,已经感谢@Flyinghoneybee 的回答,之前一直以为清空listview的数据,原来清空的是list集合
#11
有一个listAdapter.notifyDataSetChanged() 的方法 你百度一下可以试试 只需要注意adapter中list是同一个对象
#12
listView.setAdapter(null);//实测可清空
#13
太棒了。。。
#14
在刷新前 清除list集合 就行了
#15
程序直接崩掉了
#16
list.clean 清空集合里的元素
在调用 adapter。notif。。。 刷新
在调用 adapter。notif。。。 刷新