大家好,又见面了,我是你们的朋友全栈君。
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