expandablelistview中的setadapter与listview中的setadapter不同?

时间:2015-09-18 11:01:39

标签: android expandablelistview expandablelistadapter

我想在用日期更新(添加或删除)后清除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的类

3 个答案:

答案 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);