android 复制控件,Android长按复制文本功能[通俗易懂]

android 复制控件,Android长按复制文本功能[通俗易懂]安卓一般能用到长按复制的控件Textview,Editext,可能也有WebView在开始之前先说一个我遇到的一个坑:viewGroup中有一个这个属性android:descendantFocusability=”blocksDescendants”这个属性有三个值:beforeDescendants:viewgroup会优先其子类控件而获取到焦点afterDescendants:viewgro…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

安卓一般能用到长按复制的控件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()就是选中的内容

然后就是把数据复制到剪贴板同上~

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189525.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • VMware Ubuntu安装详细过程(详细图解)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!一.下载Ubuntu镜像文件下载地址:http://mirrors.aliyun.com/ubuntu-releases/16.04/进入下载页面,如下图选择版本点击即可下载二.下载及安装VMware下载地址:https://pan.baidu.com/s/1aEEI-DRa4oKeViddxW2CPA…

  • 深入浅出MFC学习笔记1_GetMessage、PeekMessage、TranslateMessage、DispachMessage等等用法 消息循环中的TranslateMessage函数和Dis

    深入浅出MFC学习笔记1_GetMessage、PeekMessage、TranslateMessage、DispachMessage等等用法 消息循环中的TranslateMessage函数和DisGetMessage:BOOLGetMessage(LPMSGlpMsg,HWNDhWnd,UINTwMsgFilterMin,UINTwMsgFilterMax);TheGetMessagefunctionretrievesamessagefromthecallingthread’

  • C#彩色扭曲验证码

    C#彩色扭曲验证码该验证码生成类集合了网上大部分的验证码生成类的精华,并多次改进,现在已经形成了可在生产环节中使用的验证码。该验证码加入了背景噪点,背景噪点曲线和直线,背景噪点文字以及扭曲,调暗,模糊等。完全可以实现防识别。按照国际惯例先贴张效果图吧:#region验证码生成类//////验证码生成类///

  • java使用xquery_如何使用Java XQuery

    java使用xquery_如何使用Java XQuery一、下载datadirectxquery.jar包,解压安装二、在Eclipse中新建一个JavaProject项目,将步骤一中的lib中的jar文件导进来。三、开始步骤:a)创建数据源DataSourceb)创建连接Connectionc)书写XQuery语句d)创建Expression,以便后面对XQuery语句进行解析e)绑定参数f)执行解析g)处理数据四、示例如下:a)DD…

    2022年10月31日
  • 什么是classpath[通俗易懂]

    什么是classpath[通俗易懂]大纲一、classpath属性作用classpath属性作用在日常的开发中或者初学者中,都是直接使用工具进行Java的开发或学习,如eclipse,idea、myeclipse这类的开发工具,由

  • asuswrt 单臂路由_OPENWRT-KOOLSHARE软路由,一级/单臂/二级/旁软路由设置单臂路由联网教程…

    asuswrt 单臂路由_OPENWRT-KOOLSHARE软路由,一级/单臂/二级/旁软路由设置单臂路由联网教程…【此文原创】此文基于单口软路由讨论一级/单臂路由LAN:IPV4设置除192.168.1.1之外和你局域网不冲突的地址,关闭桥接接口,物理设置eth0WAN:协议改成PPPOE,物理设置eth0二级/旁路由LAN:IPV4地址设置为上级路由网段地址,关闭DHCP。IPV4网关选择上级路由的网关地址。WAN:物理设置-桥接关掉,接口选择eth0-保存并应用客户端机:设置IP地址,网关为软路由地址,I…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号