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

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

android 复制控件,Android长按复制文本功能相关推荐

  1. android toolbar控件,Android Toolbar控件

    1. Toolbar类 Toolbar是替代ActionBar的产物,低版本可以使用v7兼容包,使用Theme.AppCompat主题,并添加配置. false true 2. Toolbar配置 主 ...

  2. android md 控件,Android基本UI控件.md

    # Android基本UI控件 ## *TextView 文本框* ### TextView常用用法 | 主要方法 | 功能描述 | | :----------: | :--------------- ...

  3. Android scroller控件,Android Scroller完全解析

    在Android中,任何一个控件都是可以滚动的,因为在View类当中有scrollTo()和scrollBy()这两个方法,如下图所示: 这两个方法的主要作用是将View/ViewGroup移至指定的 ...

  4. android裁剪控件,Android 仿抖音音频裁剪控件

    效果图 QQ图片20201126164657.jpg 功能要求:绘制音频效果,音乐播放后进度滚动,控件可拖动,拖动后获取新的起始时间 (后期会加入根据音乐各个时段分贝大小来动态显示音律线的长短) 控件 ...

  5. android 电量控件,Android实现显示电量的控件代码

    下面介绍了Android实现显示电量的控件代码,具体代码如下: 1.目录结构,本人是使用安卓死丢丢. 2.运行界面,输入框中输入数值,点击刷新,会再电池中显示出相应的电量 3.绘制自定义电池控件,首先 ...

  6. android+ebook控件,Android 自定义控件 eBook 翻书效果

    Book.java文件: package com.book; import Android.app.Activity; import android.os.Bundle; import android ...

  7. android 绘制控件,Android自定义控件绘制基本图形基础入门

    本文讲述绘制Android自定义各种图形效果,为自定义控件的入门篇 相关视频链接: 绘制点–这个控件只需要在布局中引用或者代码中new 即可,下面几个绘制只展示onDraw方法 package com ...

  8. android电子书控件,Android控件大全.pdf

    Android控件大全 Android 中常见控件的介绍和使用 1 TextView 文本框 1.1 TextView 类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用 ...

  9. android datepicker控件,android之datepicker控件的用法

    如下所示: android:orientation="vertical" android:layout_width="wrap_content" android ...

最新文章

  1. Android 相机,视频录制
  2. 持续集成之 Jenkins 钉钉通知(八)
  3. 【题目解析】1015 Reversible Primes (20 分)_27行代码AC
  4. 默认HotSpot最大直接内存大小
  5. python建筑案例_Python数据分析实战-链家北京二手房价分析
  6. 二维码识别中面临的主要问题
  7. mysql 命令 示例,mysql语句大全
  8. 9.21 小程序开发培训讲座
  9. PHP微信多级三级分佣系统,微信多级三级分销系统 多级三级分佣模式 支付宝微信双支付...
  10. 小型超市管理系统 C++面向对象
  11. 【数据结构】二叉树 —— 遍历二叉树 + 递归的分治(链式存储)
  12. 预处理工艺采用水处理过滤器的作用说明
  13. Java基础篇之利用IO流给文件加密、解密
  14. 用python写一元二次方程_使用Python解一元二次方程!
  15. vue3新拟态组件库开发流程——button组件源码
  16. 数论——卢卡斯(Lucas)定理(板子)
  17. Axure数据可视化BI大屏设计组件库
  18. 打印系统开发(39)——检查打印机状态
  19. 【毕业设计】深度学习安检管制物品识别检测系统 - python opencv YOLO
  20. 《孙子兵法》十三篇注译(3--作战篇)

热门文章

  1. 不同局域网下允许存在相同IP
  2. PHP导出图表 ~~ PHPExcel
  3. 使用jqprint插件实现打印页面内容
  4. MAC程序员常用服务和最新科技平台
  5. 计算机辅助药物设计 中药,浅谈计算机辅助药物设计在中药研究中的应用.pdf
  6. 散户5年,我是如何一步一步成为韭菜的
  7. change事件传参
  8. jquery 的input change事件
  9. 鲲鹏920是计算机CPU吗,华为鲲鹏920处理器到底怎么样?
  10. c# -- List.AddRange()填坑