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


相关推荐: 如何用已有域名快速搭建网站?  C++时间戳转换成日期时间的步骤和示例代码  js实现获取鼠标当前的位置  详解vue.js组件化开发实践  如何在VPS电脑上快速搭建网站?  活动邀请函制作网站有哪些,活动邀请函文案?  如何撰写建站申请书?关键要点有哪些?  Laravel如何使用Eloquent进行子查询  JavaScript常见的五种数组去重的方式  千库网官网入口推荐 千库网设计创意平台入口  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  如何快速搭建高效WAP手机网站吸引移动用户?  JS经典正则表达式笔试题汇总  制作电商网页,电商供应链怎么做?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  Laravel如何生成URL和重定向?(路由助手函数)  java ZXing生成二维码及条码实例分享  如何选择PHP开源工具快速搭建网站?  想要更高端的建设网站,这些原则一定要坚持!  php json中文编码为null的解决办法  JavaScript如何实现错误处理_try...catch如何捕获异常?  手机软键盘弹出时影响布局的解决方法  香港服务器部署网站为何提示未备案?  SQL查询语句优化的实用方法总结  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  jQuery中的100个技巧汇总  北京的网站制作公司有哪些,哪个视频网站最好?  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  轻松掌握MySQL函数中的last_insert_id()  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  EditPlus中的正则表达式 实战(2)  如何实现建站之星域名转发设置?  在Oracle关闭情况下如何修改spfile的参数  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  浅谈javascript alert和confirm的美化  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  打造顶配客厅影院,这份100寸电视推荐名单请查收  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  如何快速建站并高效导出源代码?  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)