android 复制控件,Android长按复制文本功能[通俗易懂]
安卓一般能用到长按复制的控件Textview,Editext,可能也有WebView
在开始之前先说一个我遇到的一个坑:
viewGroup中有一个这个属性android:descendantFocusability=”blocksDescendants”
这个属性有三个值:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
在这里我们要用afterDescendants就好了。
Editext
直接上代码
android:id=”@+id/order_details_tv_order_number”
style=”@style/theme_loginEditText”
android:layout_width=”0dp”
android:layout_height=”match_parent”
android:layout_weight=”2″
android:background=”@null”//背景设为null,去掉editText下划线
android:editable=”false”//不可编辑
android:textIsSelectable=”true”//文字内容可选
android:gravity=”right|center_vertical”
android:lines=”1″
android:textColor=”@color/pub_color_black”
android:textCursorDrawable=”@null”//游标设为null,去掉游标
android:textSize=”@dimen/text_h16″
tools:text=”2382787482347″ />
如果遇到不能弹出系统复制的功能,加上以下代码绝对能复制成功
ClipboardManager cm =(ClipboardManager)getContext().getSystemService(Context.CLIPBOARD_SERVICE);
cm.setText(orderDetailsTvOrderNumber.getText().toString());
//ToastUtil.toastSth(getContext() , “文本已复制,快去粘贴吧~”);
Textview
其实单单考虑长按复制,那就只需要获取到文本内容然后复制到粘贴板上,上代码:
ClipboardManager clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText(null,text);// 把数据复制到剪贴板
clipboard.setPrimaryClip(clipData);
或者在布局中加上textIsSelectable这个属性:
android:textIsSelectable=”true”
Webview
webview在加载链接之前想长按复制链接,其实原理也还是现获取webview要加载的内容然后把它复制到剪贴板
获取选中的内容要调用webView中的未公开函数getSelection 因此通过反射:
Method m = WebView.class.getMethod(“getSelection”, null);
m.setAccessible(true);
Object obj = m.invoke(webview, null);
obj.toString()就是选中的内容
然后就是把数据复制到剪贴板同上~
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/189525.html原文链接:https://javaforall.cn
相关文章
- android scaleanimation动画,【Android动画九章】-RotateAnimation(旋转动画)和ScaleAnimation(尺寸动画)…[通俗易懂]
- android okio使用方法,Android 开源框架 Okio 原理剖析「建议收藏」
- android autosize原理,Android屏幕适配头条:autosize的原理
- mac 电脑android环境变量设置,mac上Android环境变量配置[通俗易懂]
- ubuntu android studio_android自启动
- Android原生编解码接口 MediaCodec 之——踩坑
- 【Android 进程保活】oom_adj 值 ( 简介 | 查询进程 PID | 根据进程 PID 查询 oom_adj 值 )
- Android端OneDrive应用更新:新增多项图片编辑功能详解手机开发
- 实现android apk反编译后代码混淆详解手机开发
- Android 代码监控apk安装,卸载,替换详解编程语言
- android版本检测Android程序的版本检测与更新实现介绍
- Android中自定义数据绑定适配器BaseAdapter的方法
- Android开发笔记之:Dialog的使用详解
- 在Android模拟器上模拟GPS功能总是null的解决方法
- Android动态添加menu菜单的简单方法
- Android中自定义ContentProvider实例
- Android点击Button实现功能的几种方法总结
- Android实现系统重新启动的功能
- 详细介绍Android中回调函数机制
- android教程之intent的action属性使用示例(intent发短信)
- android实现文本复制到剪切板功能(ClipboardManager)