listview notifyDataSetChanged()刷新显示

来源:互联网 发布:淘宝店铺的网址在哪里 编辑:程序博客网 时间:2024/06/01 21:32

 spinner和listview  对于 list数据源改变时更新 刷新view显示,总结有三种办法:


1,重新设置数据源和适配器:cs=CityUtil.getProvinces().get(position).getCities();
cAdapter=new ArrayAdapter<String>(WeatherActivity.this,
android.R.layout.simple_spinner_item, cs);
cAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinC.setAdapter(cAdapter);

2,更新数据源,通知adapter刷新(前提是数据源初始化就是个集合)【但如果list的引用地址改变 则更新无效】
/*cs.clear();
cs.addAll(CityUtil.getProvinces().get(position).getCities());
cAdapter.notifyDataSetChanged();*/

3、更新数据源 通知重新绘制listview(前提是 list引用地址发生改变)
cAdapter.notifyDataInvalidate();但是 如果list引用地址没有改变而只是元素数量改变则无效
4,注意:spinner下拉列表 已经设置了adapter;如果添加了选择监听,也会监听默认的选择(第一个),即使没有手动去选择其他的列表项。


太晚了,有时间 详细说说。入行不久,望各位不吝讨论!
0 0
原创粉丝点击