首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在用ContextMenuItemSelected长点击时从ExpandableListView中删除一个项目?

在使用ContextMenuItemSelected长点击时从ExpandableListView中删除一个项目,可以按照以下步骤进行操作:

  1. 首先,需要为ExpandableListView注册上下文菜单,以便长按时弹出菜单选项。可以在Activity或Fragment的onCreate方法中添加以下代码:
代码语言:txt
复制
registerForContextMenu(expandableListView);
  1. 接下来,需要重写onCreateContextMenu方法,在该方法中创建菜单选项,并设置点击事件。可以在Activity或Fragment中添加以下代码:
代码语言:txt
复制
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.context_menu, menu); // R.menu.context_menu为自定义的菜单布局文件
}

@Override
public boolean onContextItemSelected(MenuItem item) {
    ExpandableListView.ExpandableListContextMenuInfo info = (ExpandableListView.ExpandableListContextMenuInfo) item.getMenuInfo();
    int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition);
    int childPos = ExpandableListView.getPackedPositionChild(info.packedPosition);
    
    switch (item.getItemId()) {
        case R.id.delete_item:
            // 在这里执行删除操作
            // 根据groupPos和childPos获取要删除的项目,并从数据源中移除
            // 例如:dataList.get(groupPos).remove(childPos);
            // 更新ExpandableListView的显示
            // 例如:adapter.notifyDataSetChanged();
            return true;
        default:
            return super.onContextItemSelected(item);
    }
}
  1. 在菜单布局文件(R.menu.context_menu)中添加删除选项。可以在res/menu目录下创建context_menu.xml文件,并添加以下代码:
代码语言:txt
复制
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/delete_item"
        android:title="删除" />
</menu>

以上是在用ContextMenuItemSelected长点击时从ExpandableListView中删除一个项目的基本步骤。具体的实现方式可能会根据项目的具体情况有所不同。关于ExpandableListView的更多信息,可以参考腾讯云的官方文档:ExpandableListView

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券