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

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


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()就是选中的内容

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

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pytest重试_联系人去重失败

    pytest重试_联系人去重失败安装:pip3installpytest-rerunfailures重新运行所有失败用例要重新运行所有测试失败的用例,请使用–reruns命令行选项,并指定要运行测试的最大次数:$py

    2022年7月31日
  • 刷流量和刷点击率的方法探讨

    本文主要用到的工具软件有《网页自动操作通用工具》或《网页自动刷新监控工具》,其中《网页自动操作通用工具》包含《网页自动刷新监控工具》所有功能,所以主要以前者为例说明。请自行在网上搜索和下载软件。许多朋友需要用到提高流量或点击率,比如:提高自己博客访问量,小说访问量,视频点击率,论坛帖子点击率等。这样就可以提高自己的排名或在网…

    2022年4月13日
  • Hybrid APP混合开发的一些经验和总结

    Hybrid APP混合开发的一些经验和总结HybridAPP混合开发的一些经验和总结转载至: http://www.cnblogs.com/yuanyingke/p/6060150.html1、混合开发概述Hybrid App主要以JS+Native两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发。Hybrid App兼具了Native App良好用户体验的优势,

    2022年9月22日
  • mysql面试题总结[通俗易懂]

    mysql面试题总结[通俗易懂]1.主键超键候选键外键   超键(superkey):在关系中能唯一标识元组的属性集称为关系模式的超键    候选键(candidatekey):不含有多余属性的超键称为候选键    主键(primarykey):用户选作元组标识的一个候选键程序主键    外键(foreignkey):如果关系模式R1中的某属性集不是R1的主键,而是另一个

    2022年8月27日
  • 机器学习案例——鸢尾花数据集分析

    机器学习案例——鸢尾花数据集分析    前几天把python基础知识过了一遍,拿了这个小例子作为练手项目,这个案例也有师兄的帮助,记录完,发现代码贴的很多,文章有点长,为了节省篇幅,有一些说明就去掉了,毕竟鸢尾花数据集比较经典,网上能找到很多和我差不多的案例。还有就是发现一个新的markdown排版工具,今天想试试效果。数据来源    首先说一下,该数据集来源于网络。Iris也称鸢尾花卉数据集,是一类多重变量分析的数……

    2022年10月3日
  • git删除远程分支

    1.git删除远程分支gitpushorigin–delete[branch_name]2.删除本地分支区别gitbranch-d会在删除前检查merge状态(其与上游分支或者与head)。gitbranch-D是gitbranch–delete–force的简写,它会直接删除。共同点都是删除本地分支的方法(与删除远程分支命令相独立,要想本地和远程都删除,必须得运行两个命令)。3.git查看分支:查看本地分支gitbranch查看远程分支

    2022年4月3日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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