我有一个使用ExpandableListView的活动。我使用扩展BaseExpandableListAdapter的自定义适配器填充列表(我的适配器称为StopsExpandableAdapter)。我实施了所有必要的方法。
在我的活动中,我可以使用上下文菜单从该列表中删除条目。当用户这样做时,我想刷新列表,以便删除该项目。如果我创建一个新适配器,列表视图将重置为默认值,并且所有组都将折叠。我想保留listview的状态,因此刷新列表后仍然会扩展扩展组。
我以为我可以在自定义适配器(StopsExpandableAdapter)中添加removeGroup方法,并在删除组后在我的活动中使用它,但如果我使用:
mExpandableList.getAdapter();
我得到一个ExpandableListConnector,而不是我的自定义适配器,因此我无法使用我的功能。如何刷新列表并保持其状态?
答案 0 :(得分:1)
为了能够访问我的适配器,我将其保存为全局变量:
private StopsExpandableAdapter adapter;
通过这种方式,我可以访问我的函数,从我的数据列表中删除子项(在适配器内),并通知数据已更改。
能够保持我正在使用布尔人的状态,以了解一个群体是否已经扩大。每次添加或删除项目时,我都会检查哪些组已展开,以便在完成添加/删除后再次展开它们。
private ArrayList<Boolean> expandGroups;
答案 1 :(得分:0)
使用以下命令。
StopsExpandableAdapter.notify();
或
StopsExpandableAdapter.notifydatasetchanged();