首页
学习
活动
专区
工具
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

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

相关·内容

Android开发笔记(一百)折叠式列表

经常看朋友圈的动态,有的动态内容较多就只展示前面一段,如果用户想看完整的再点击展开,这样整个页面的动态列表比较均衡,不会出现个别动态占用大片屏幕的情况。同样,查看博客的文章列表也类似,只展示文章开头几行内容,有需要再点击加载全篇文章。 动态列表直接使用ListView,动态内容就得自己写个控件了,自定义控件的难点在于如何把握动态下拉和收起的动画。这里我们要先预习TextView的相关函数,下面是本文用到的方法说明: getHeight : 获取TextView的显示高度。 setHeight : 设置TextView的显示高度。 getLineHeight : 获取每行文本的高度。 getLineCount : 获取所有文本的行数。 如果一开始每条动态默认显示四行,那么默认显示高度是getLineHeight*4,使用setHeight方法即可设置动态的初始显示高度。点击展开动态全文时,就得显示所有行的文本,整个文本的高度是getLineHeight*getLineCount。现在有了每条动态的初始高度,以及动态全文的完整高度,再加个拉伸动画就差不多了。拉伸动画的主要工作是随着时间的推移,给TextView设置渐增或渐减的高度,这要重写Animation的applyTransformation方法。 下面是点击监听器的显示动画代码示例:

04
  • 领券