📅  最后修改于: 2023-12-03 15:09:01.541000             🧑  作者: Mango
在 Android 的可扩展列表视图中,用户可以通过展开父项行来查看子项行。有时候,我们需要在用户操作后删除特定的子项行。以下是如何在可扩展列表视图中删除子项行的步骤:
getChildCount()
方法获取子项行的数量。int childCount = expandableListView.getChildCount();
getChildAt(index)
方法获取特定的子项行 View
。View childView = expandableListView.getChildAt(index);
getTag()
方法获取子项行对应的数据对象,例如一个 HashMap
。HashMap<String, String> childData = (HashMap<String, String>) childView.getTag();
SimpleExpandableListAdapter
来创建可扩展列表视图:SimpleExpandableListAdapter adapter = (SimpleExpandableListAdapter) expandableListView.getExpandableListAdapter();
HashMap<String, String> parentData = (HashMap<String, String>) adapter.getGroup(groupPosition);
parentData.remove(childData.get("key"));
notifyDataSetChanged()
方法更新列表视图,使得删除操作生效。adapter.notifyDataSetChanged();
现在,我们已经成功在可扩展列表视图中删除了子项行。完整的示例代码如下所示:
int childCount = expandableListView.getChildCount();
for (int i = 0; i < childCount; i++) {
View childView = expandableListView.getChildAt(i);
HashMap<String, String> childData = (HashMap<String, String>) childView.getTag();
if (childData.get("key").equals("value")) {
SimpleExpandableListAdapter adapter = (SimpleExpandableListAdapter) expandableListView.getExpandableListAdapter();
HashMap<String, String> parentData = (HashMap<String, String>) adapter.getGroup(groupPosition);
parentData.remove(childData.get("key"));
adapter.notifyDataSetChanged();
break;
}
}
以上就是如何在可扩展列表视图中删除子项行的全部步骤。注意,这只是一种示例方法,具体实现可能因应用程序而异。