android中的长按复制

来源:互联网 发布:mysql大字段类型 编辑:程序博客网 时间:2024/05/23 13:10

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;            }        });

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

原创粉丝点击