我想在用日期更新(添加或删除)后清除listview。 我在这里使用了setadapter,如How to clear the views which are held in the ListView's RecycleBin?
expList = (ExpandableListView) findViewById(R.id.expandableList);
expListAdapter = new POIExpandableListAdapter(LocationSettingActivity.this);
expListAdapter = expList.getAdapter();
expList.setAdapter (expListAdapter);
但是没用,视图是添加所有数据和更新的数据(不刷新),expandablelistview中的setadapter与listview中的setadapter有什么不同吗?
注意:POIExpandableListAdapter是一个扩展BaseExpandableListAdapter的类
答案 0 :(得分:0)
摆脱expListAdapter = expList.getAdapter();
在expList = (ExpandableListView) findViewById(R.id.expandableList);
之后,getAdapter()
返回null覆盖expListAdapter = new POIExpandableListAdapter(LocationSettingActivity.this);
。你写它的方式等于调用expList.setAdapter (null);
答案 1 :(得分:0)
只需删除expListAdapter = expList.getAdapter();
您的列表还没有适配器,因此在getAdapter()
之前调用setAdapter()
将返回 null 对象。
更改您的代码:
expList = (ExpandableListView) findViewById(R.id.expandableList);
expListAdapter = new POIExpandableListAdapter(LocationSettingActivity.this);
expList.setAdapter (expListAdapter);
答案 2 :(得分:0)
最后我找到了如何刷新列表(更新后清除以前的数据),在我的情况下,我需要在更新数据后再次重新创建向量,而不仅仅是适配器:
vector = new Vector<ArrayList<PointOfInterest>>();
type = new Vector<String>();
expList.setGroupIndicator(null);
expListAdapter = new POIExpandableListAdapter(LocationSettingActivity.this);
expList.setAdapter (expListAdapter);