Android textview 实现长按自由选择复制功能的方法

发布时间 - 2026-01-11 00:46:31    点击率:

这里有一个大坑,我的viewGroup中有一个这个属性android:descendantFocusability=”blocksDescendants”

开始没有注意到,试了好多方法都不行,后来才看到这个属性,顺便科普一下,这个属性有三个值~

beforeDescendants:viewgroup会优先其子类控件而获取到焦点

afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

这里使用afterDescendants就好了,

标题有一点误区,其实这里的textView是editText,只是样子像textView而已,直接上代码

<EditText
 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"
 android:editable="false"
 android:textIsSelectable="true"
 android:gravity="right|center_vertical"
 android:lines="1"
 android:textColor="@color/pub_color_black"
 android:textCursorDrawable="@null"
 android:textSize="@dimen/text_h16"
 tools:text="2382787482347" />

其中需要注意的是这几个属性

android:background=”@null”//背景设为null,去掉editText下划线
android:textCursorDrawable=”@null”//游标设为null,去掉游标
android:editable=”false”//不可编辑
android:textIsSelectable=”true”//文字内容可选

测试发现部分rom会弹不出来系统自带复制按钮,加入下面代码可以保证复制成功

tvView.setOnLongClickListener(new OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {

      ClipboardManager cm =(ClipboardManager)getContext().getSystemService(Context.CLIPBOARD_SERVICE);
      cm.setText(orderDetailsTvOrderNumber.getText().toString());
      //ToastUtil.toastSth(getContext() , "订单号已复制到剪切板,快去粘贴吧~");
      return false;
    }
});

以上这篇Android textview 实现长按自由选择复制功能的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# 安卓textview长按复制  # Android中TextView实现分段显示不同颜色的字符串  # Android中TextView显示圆圈背景或设置圆角的方法  # Android TextView实现多文本折叠、展开效果  # Android中TextView实现垂直滚动和上下滚动效果  # Android中使用TextView实现文字跑马灯效果  # Android实现可收缩和扩展的TextView  # 浅析Android TextView常用属性  # 子类  # 设为  # 给大家  # 的是  # 不需要  # 下划线  # 中有  # 希望能  # 注意到  # 可选  # 快去  # 这篇  # 这几个  # 时才  # 试了  # 需要注意  # 小编  # 都不行  # 大家多多  # 自由选择 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JS碰撞运动实现方法详解  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  WEB开发之注册页面验证码倒计时代码的实现  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  Android GridView 滑动条设置一直显示状态(推荐)  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  Laravel如何实现一对一模型关联?(Eloquent示例)  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  详解CentOS6.5 安装 MySQL5.1.71的方法  如何用西部建站助手快速创建专业网站?  深圳网站制作平台,深圳市做网站好的公司有哪些?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  如何在云主机上快速搭建网站?  bing浏览器学术搜索入口_bing学术文献检索地址  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  详解vue.js组件化开发实践  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  js实现点击每个li节点,都弹出其文本值及修改  nodejs redis 发布订阅机制封装实现方法及实例代码  Laravel如何使用withoutEvents方法临时禁用模型事件  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  大同网页,大同瑞慈医院官网?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  Android利用动画实现背景逐渐变暗  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  网站建设保证美观性,需要考虑的几点问题!  C++时间戳转换成日期时间的步骤和示例代码  详解Android——蓝牙技术 带你实现终端间数据传输  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  免费网站制作appp,免费制作app哪个平台好?  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法