【发布时间】:2020-12-15 13:00:07
【问题描述】:
我已使用可扩展列表视图在我的导航抽屉项目中实现下拉功能。现在,如果我展开一个导航抽屉项目,然后再展开另一个 - 两个项目都保持展开状态。我想要的是,当我展开一个项目,然后再展开另一个项目时,前一个项目会折叠。
我已经使用下面的代码来尝试这样做:
expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
for (Map.Entry mapElement : expandabilityMap.entrySet()) {
int groupPos = (int) mapElement.getKey();
boolean isExpanded = (boolean) mapElement.getValue();
if (isExpanded) {
parent.collapseGroup(groupPos);
}
expandabilityMap.put(groupPosition, true);
}
return false;
}
});
我有一个名为“expandabilityMap”的哈希图,其中我将导航抽屉项目位置存储为键,并将“真”或“假”作为值 - 如果该位置的项目展开,则为 true,否则为 false。
以上代码应该在单击导航抽屉中的项目时执行以下操作:
- 从 hashmap 中获取键和值。
- 如果有 'true' 值,则在相应位置折叠项目。
- 将当前单击的项目位置与“真”值一起放入哈希图中。
- 展开点击的项目。
但是在运行我的应用程序后,当我展开一个项目时,它会展开。但是当我尝试展开另一个项目时,我的应用程序崩溃了。
我得到以下异常:
E/MessageQueue-JNI: java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
我无法解决这个问题。请帮忙!
【问题讨论】:
标签: android expandablelistview