RecyclerView实现长按弹出菜单

RecyclerView添加ContextMenu的两种方案详解 RecyclerView+ContextMenu实现的技术难点主要是在RecyclerView中获取被点击item的position,本文一共给出了两种解决方案。 阅读详情
public class AddressListAdapter extends BaseQuickAdapter<AddressListResult.Address, AddressListAdapter.ViewHolder> {
    private int position;

    public AddressListAdapter(@Nullable List<AddressListResult.Address> data) {
        super(R.layout.item_addressshow, data);
    }

    public int getPosition() {
        return position;
    }

    public void setPosition(int position) {
        this.position = position;
    }

    @Override
    protected void convert(ViewHolder helper, AddressListResult.Address item) {
        helper.getTextViewName().setText(item.getConsignee());
        helper.getTextViewAddress().setText(item.getAddress());
        helper.getTextViewArea1().setText(item.getArea1());
        helper.getTextViewTelNumber().setText(item.getTel());
        helper.itemView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                int a = helper.getLayoutPosition();
                Log.d("debug", "長按時的position->>>>>>" + a);
                setPosition(a);//
                return false;
            }
        });
    }

    public class ViewHolder extends BaseViewHolder implements View.OnCreateContextMenuListener {
        private TextView textViewName;
        private TextView textViewAddress;
        private TextView textViewArea1;
        private TextView textViewTelNumber;

        public ViewHolder(View view) {
            super(view);
            textViewName = view.findViewById(R.id.address_name_tv);
            textViewAddress = view.findViewById(R.id.address_address_tv);
            textViewArea1 = view.findViewById(R.id.address_area1);
            textViewTelNumber = view.findViewById(R.id.address_telnumber);
            view.setOnCreateContextMenuListener(this);
        }

        public TextView getTextViewName() {
            return textViewName;
        }

        public void setTextViewName(TextView textViewName) {
            this.textViewName = textViewName;
        }

        public TextView getTextViewAddress() {
            return textViewAddress;
        }

        public void setTextViewAddress(TextView textViewAddress) {
            this.textViewAddress = textViewAddress;
        }

        public TextView getTextViewArea1() {
            return textViewArea1;
        }

        public void setTextViewArea1(TextView textViewArea1) {
            this.textViewArea1 = textViewArea1;
        }

        public TextView getTextViewTelNumber() {
            return textViewTelNumber;
        }

        public void setTextViewTelNumber(TextView textViewTelNumber) {
            this.textViewTelNumber = textViewTelNumber;
        }

        @Override
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
            int groupID = 0;
            int order = 0;
            int[] itemID = {1, 2};
            for (int i = 0; i < itemID.length; i++) {
                switch (itemID[i]) {
                    case 1:
                        menu.add(groupID, itemID[i], order, "刪除");
                        break;
                    case 2:
                        menu.add(groupID, itemID[i], order, "修改");
                        break;
                    default:
                        break;
                }
            }
        }
    }
}
在Activity中重写如下方法
@Override
public boolean onContextItemSelected(MenuItem item) {
    if (item.getTitle().equals("刪除")) {
        Log.d("debug", "删除按钮点击");
    }
    return super.onContextItemSelected(item);
}
Android实现RecyclerView长按弹出Menu (附完整源码) 阅读详情

相关推荐

RecyclerView侧滑菜单,滑动删除,长按拖拽

RecyclerView侧滑菜单,滑动删除,长按拖拽,下拉刷新,加载更多

recyclerView的写法--实现长按item弹出菜单功能,每个item实现偏移

recyclerView的写法导入到工程中 导入到工程中 在你的工程上点击右键,弹出如下图片,大家看图吧 点击ok后,这个recyclerview-v7的包就引用到自己的工程里了,也不用管那个build.jradle文件了,打开会发现已经自动填好了. ...

Barryjacket的博客 1962

机器学习实例(预测房价中位数)(附代码)

1、下载数据: 下载一个压缩文件housing.tgz即可,其包含housing.csv(已经包含书有数据。),用 tax xzf housing.tgz 来解压提取CSV文件。 import os import tarfile import urllib.request DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml2/master/" HOUSING_PATH = os.path.join("datasets",

qq_51153436的博客 2758

Android kotlin 用RecyclerView(androidx+BRVAH3.0.6)实现仿微信长按列表弹出菜单功能

RecyclerView+BRVAH3.0.6

彬sir哥的博客 1249

VSCode 1.85便携版安装与配置:解决远程服务器glibc版本过低报错的保姆级指南

本文详细介绍了如何通过VSCode 1.85便携版解决远程服务器glibc版本过低导致的兼容性问题。通过环境隔离和版本固化的方法,开发者可以在老旧服务器上稳定运行Remote-SSH插件,同时保留主力VSCode的配置。文章提供了从下载安装到深度配置的完整指南,帮助用户快速搭建稳定的开发环境。

weixin_30279315的博客 577

使用网分对晶体ESR/L1/C1/C0进行测量计算

Use R&amp;S Vector Network Analyzer test XTAL ESR/L1/C1/C0 測量方法:使用儀器的Port1端口,測量XTAL的S11,通過諧振的參數計算出ESR/L1/C1/C0的值。 實際晶體的等效模型:通常方便晶體分析,使用下圖(b)的等效模型,但實際測量發現晶體存在多個串聯諧振點,實際等效模型更接近(c)。 儀器測量到的S11,其中M...

qq_39138630的博客 2085

RecyclerView添加ContextMenu易错细节

RecyclerView是默认不能想ListView一样支持ContextMenu的,不过可以通过重写以下两个方法来实现ContextMenu:protected ContextMenu.ContextMenuInfo getContextMenuInfo(){...} @Override public boolean showContextMenuForChild(View origina

少晒太阳,如鱼得水 755

Debezium报错处理系列之二十八: Expiring 1 record(s) for test-ts-0:120001 ms has passed since batch creation

Debezium报错处理系列之二十八: Expiring 1 record(s) for test-ts-0:120001 ms has passed since batch creation

zhengzaifeidelushang的博客 3290

ListView更换为RecyclerView的过程知识总结

最近在入手一个issue,需要将应用中使用的Listview全部更换为RecyclerView,在这过程中遇到了不少坑,在这里记录一下,一起学习。(ps:真的觉得谷歌大大是不是推出RecyclerView有些着急了) RecyclerView点击事件和长按事件...

Haienzi的博客 1885

深度学习实战42-基于大模型开发MathGPT的原理介绍,让数学问题智能解答变为可能

大家好,我是微学AI,今天给大家介绍一下深度学习实战42-基于大模型开发MathGPT的原理介绍,让数学问题智能解答变为可能。在去年ChatGPT的发布后,各种国内外的大语言模型层出不穷涌现,但是大家都知道现在的模型的诟病的数学能力不足,就算是简单的数学题都可能算错,今天我就来给大家引入MathGPT的模型,用来解决GPT解决数学问题,对于简单的初中数学高中数学都可以解决,让数学问题精准答题得到实现。

微学AI的博客 1649

【APM】在Kubernetes中搭建OpenTelemetry+Loki+Tempo+Grafana链路追踪(实战一,Loki日志中查看链路追踪数据)

这对于那些不能直接控制 JVM 启动参数的应用特别有用,比如通过 JNI (Java Native Interface) 调用 JVM 的应用、脚本中嵌入的 JVM 应用,或者一些服务管理工具自动启动的服务。这为用户提供了一个灵活的架构,可以根据需要选择最适合自己的追踪解决方案,或者根据环境(如开发、测试、生产)的不同配置不同的后端。: OpenTelemetry SDK 提供了丰富的特性,如自动追踪上下文传播、手动追踪跨度的创建与关联、标签和事件的添加等,使得追踪数据更加丰富和有用。

CN_Eden 3241

Android实现RecyclerView长按弹出Menu(附带源码)

Android实现RecyclerView长按弹出Menu(附带源码)

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 1462

黑猫带你学UFS协议第17篇:UFS安全模式详解(Secure Mode)

本文详细介绍了UFS协议中的安全模式,包括Erase, Discard, Purge和Wipe Device操作。Erase用于永久删除数据并确保无法恢复;Discard不保证数据清除;Purge类似于Sanitize,清除内部未映射的物理块数据;Wipe Device则是格式化设备。这些操作涉及逻辑单元、擦除单位、相关寄存器配置等,确保数据安全。" 126036669,12409270,MySQL 8.0 开窗函数详解,"['数据库理论', 'SQL']

黑猫奥利奥的博客 2559

Android RecyclerView (四)初学,实现长按删除一个Item.

在上一篇中,我学到了如何给RecyclerView添加Item监听器,在这里,我想做到类似于可以长按某个Item然后弹出一个菜单,选择删除这个Item的功能。这里的代码我们还是使用前面写的代码. PopupMenu绑定一个menu然后进行显示。 首先,我们在MyAdapter中先写好删除Item的方法,public void removeItem(int pos){ info

安之若素丶c 1万+

Android 12.0 系统开机设置默认横屏显示

在12.0的系统产品开发中,对于产品需求来说,由于是宽屏设备所以产品需要开机默认横屏显示,开机横屏显示这就需要从两部分来实现,一部分是开机动画横屏显示,另一部分是系统显示横屏显示,从这两方面就可以做到开机默认横屏显示了。

安卓兼职framework和app工程师的博客 3743

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

安卓 实现PopUpWindow (长按删除列表元素的界面)(新手笔记-18)

我们经常会使用到Recyclerview来显示列表内容,有时候我们需要删除某一项,这时候我们会选择长按,长按后的弹窗可以使用PopUpWindow来实现(由于需要数据交互更新,我这里没有做数据的删除,只是实现前端界面样式)。首先创建了一个LinearLayout,里面包含两个TextView作为弹出界面的布局,这里不写了。之后实现一个PopUpWindow:public class Recycle...

qq_39079912的博客 672

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

为RecyclerView添加ContextMenu

这里要实现的是RecyclerView的item的长按事件与Menu关联 先看看要写的效果: 1、在res下新建menu目录,在menu目录下新建recyclerview_menu.xml文件:<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android

sqf251877543的博客 1651

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Android文本长按qq风格,Android仿QQ长按删除弹出框功能示例

废话不说,先看一下效果图,如果大家感觉不错,请参考实现代码:对于列表来说,如果想操作某个列表项,一般会采用长按弹出菜单的形式,默认的上下文菜单比较难看,而QQ的上下文菜单就人性化多了,整个菜单给用户一种气泡弹出的感觉,而且会显示在手指按下的位置,而技术实现我之前是使用popupWindow和RecyclerView实现的,上面一个RecyclerView,下面一个小箭头ImageView,但后来发...

weixin_33534991的博客 248

recyclerView 的使用多条目/条目中控件点击事件/条目长按事件

寻找控件,设置布局管理器recyclerView = findViewById(R.id.recyclerView); recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));recyclerView的适配器public class RecyclerAdapter...

king_wt的博客 759

Android之用PopupWindow实现弹出菜单

在使用UC-WebBrowser时,你会发现它的弹出菜单跟系统自带的菜单不一样。它实现更多菜单选项的显示和分栏。其实,它的本身是PopupWindow或者是AlertDialog对话框,在里面添加两个GridView控件,一个是菜单标题栏,一个是菜单选项。菜单选项视图的切换可以通过适配器的变换,轻松地实现。 二、实现要点: (1)屏蔽系统弹出的菜单: ...

abc20899的专栏 158

Android RecyclerView实现长按弹出PopupMenu菜单

话不多说,直接上效果图: RecyclerView 和 Fragment的基础框架我就不写了,直接上给你们关键代码,相信问到这个问题的你们,之前的这两个知识点都有了一定基础,如果还是有点懵,可以参考我之前写的两篇博文: Fragment: https://mp.youkuaiyun.com/mdeditor/95904365# RecyclerView:https://blog.youkuaiyun.com/qq_27...

qq_27494201的博客 4850

RecyclerView的实现

移动开发作业二:

qq_44844973的博客 674

给recycleview中每个子项添加水波纹效果并且长按出现弹出菜单

水波纹效果 参考 https://blog.youkuaiyun.com/REIGE/article/details/68957994 recycler_item_selector.xml文件 <?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/design_default_color_prima.

Jo2000的博客 1962

底部弹出菜单原来这么简单

需要注意一点的是,最上面那个菜单的样式稍微有点不一样,因为它上面是圆滑的,有圆角,这样的界面显示更加和谐。我们主要考虑的就是弹出对话框的动画样式,另外注意一点就是可以多支持几个语种,让框架更加专业,这里只需要翻译“取消”文字。类的结构不仅可以继承,还可以使用聚合和组合的方式,我们这里就不直接继承Dialog了,使用一种更接近代理的一种方式。条条大路通罗马,能抓到老鼠的就是好猫。底部弹出菜单,即从app界面底部弹出的一个菜单列表,这种UI形式被众多app所采用,是一种主流的布局方式。以上是对话框的样式。

跟着哆啦学Android 1142
上一篇: Xcode中如何在两个tab之间来回切换的快捷键
下一篇: Android BottomSheetDialogFragment实现固定高度
JianfeiMa
博客等级 码龄10年 61粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值