android中的长按复制

在Android中,只需在TextView中添加android:textIsSelectable="true"属性,即可轻松实现长按复制功能。两种实现方式包括:1)使用setTextIsSelectable()方法,简单便捷,自动提示;2)通过OnLongClickListener结合PopupWindow自定义复制菜单,需要更多代码操作。建议使用第一种方法,因为它更直观易用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android:textIsSelectable=”true”
重点写在最前面,只用在textView中加入这个属性就可以满足长按复制了

一。网上查了下有两中方式可以实现长按复制粘贴
1)使用setTextIsSelectable()方法
 代码中直接对TextView使用setTextIsSelectable()方法,将TextView设置成可点按选择的即可.
 

TextView tv = new TextView(context);
                tv.setTextIsSelectable(true);

或者

<TextView
        android:id="@+id/tv1"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:textSize="18sp"
        android:textIsSelectable="true"
        android:gravity="center_vertical"
        android:text="Hello World!"/>

效果图如下,测试手机小米MAX2 android7.0
这里写图片描述
这里写图片描述
这个看起来挺方便的,也自动提示,不需要做什么处理,用户就知道我们的操作


2)使用OnLongClickListener
直接使用TextView, 然后在代码里给TextView添加OnLongClickListener事件,长按时弹出自定义 “复制” 菜单(比如结合 PopupWindow做弹出菜单). 点击”复制” 就去获取TextView的内容.当然, 这里只是获取内容, 如何将内容放入粘贴管理器还需要一个ClipboardManager 对象.它负责管理复制后粘贴的这件事.

 tv1.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                ClipboardManager cmb = (ClipboardManager) getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE);
                cmb.setText(tv1.getText().toString().trim()); //将内容放入粘贴管理器,在别的地方长按选择"粘贴"即可
                Toast.makeText(MainActivity.this,"已经复制",Toast.LENGTH_SHORT).show();
                return false;
            }
        });

这个必须主动提示用户,你已经长按复制了,感觉没有第一个方便,所以建议使用第一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值