安卓长按复制_Android长按弹出选项框

2022-11-10 13:00:09 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。

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

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

代码语言:javascript复制
TextView tv = new TextView(context);
                tv.setTextIsSelectable(true);

或者

代码语言:javascript复制
<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 对象.它负责管理复制后粘贴的这件事.

代码语言:javascript复制
 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;
            }
        });

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/188996.html原文链接:https://javaforall.cn

0 人点赞