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

这里有一个大坑,我的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 实现长按自由选择复制功能的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

时间: 2024-10-26 02:36:48

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

android:TextView简单设置文本样式和超链接的方法_Android

本文实例讲述了android:TextView简单设置文本样式和超链接的方法.分享给大家供大家参考,具体如下: 设置TextView中文本的样式(如:颜色.斜体等),可以针对不同位置的文本设置不同的样式(如:将索引范围在1-3的字符设置为黑色,2-6的字符设置为粗体等) myFirstTextView = (TextView)findViewById(R.id.myFirstTextView); myFirstTextView.setText("这是我的第一个TextView,嘿嘿"

Android TextView 去掉自适应默认的fontpadding的实现方法

Android TextView 去掉自适应默认的fontpadding的实现方法 最近在项目中使用textview时发现在使用Android:layout_height="wrap_content"这个属性设置后,textview会有默认的padding,也就是fontpadding.这样就会造成textview和其他view中间的间距会比自己的设置的大.那么我们怎么来remove掉这个间距呢? 第一.先试试设置includefontpadding=false ,如果不能达到目的的话

android:TextView简单设置文本样式和超链接的方法

本文实例讲述了android:TextView简单设置文本样式和超链接的方法.分享给大家供大家参考,具体如下: 设置TextView中文本的样式(如:颜色.斜体等),可以针对不同位置的文本设置不同的样式(如:将索引范围在1-3的字符设置为黑色,2-6的字符设置为粗体等) myFirstTextView = (TextView)findViewById(R.id.myFirstTextView); myFirstTextView.setText("这是我的第一个TextView,嘿嘿"

Android TextView中文字通过SpannableString设置属性用法示例_Android

本文实例讲述了Android TextView中文字通过SpannableString设置属性的方法.分享给大家供大家参考,具体如下: 在Android中,TextView是我们最常用的用来显示文本的控件. 一般情况下,TextView中的文本都是一个样式.那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下. //创建一个 SpannableString对象 SpannableStri

Android自由选择TextView的文字

用过EditText的都知道,EditText有个特点,当在里面长按的时候,会出现一个 ContextMenu,提供了选择文字,复制,剪切等功能.有时候,我们会想,如果不出现这个 ContextMenu,直接就在view 上选择文字,那多美好啊.相信很多人抱有这样的想法,很不 幸,我也是.于是我就研究了一下EditText和TextView的代码,然后将这个问题解决了. 网上很多资料都说,要选择一段文字,只需要用Selection.getSelectionStart()和 Selection.g

textview-Android中textView实现自由选择复制

问题描述 Android中textView实现自由选择复制 我求个源码看看,我在网页上也看了很多,但是还是不太明白,自己做了下,效果也没有实现.谢谢好心人了 解决方案 http://blog.csdn.net/huangyabin001/article/details/34888647 解决方案二: 实现:TextView自由复制功能实现:TextView自由复制功能android] TextView文本的 "选择文字""复制" "

settextisselectable-Android textview的选择复制功能。设置setTextIsSelectable不好用是为什么?

问题描述 Android textview的选择复制功能.设置setTextIsSelectable不好用是为什么? Android的textview上想做个选择文字复制的功能,百度了一下, 可以设置setTextIsSelectable为true, 可是在小米手机上可用,到了三星手机上就不可以. 求大神解答. 解决方案 从android sdk 11起google添加了新api,TextIsSelectable控制TextView是否支持拷贝.粘帖功能,不过这个功能在v11以下则不那么好彩了.

Android WebView自定义长按选择实现收藏/分享选中文本功能

效果图(1.3M) 一.前言 ** 戳这里可以去DEMO,来吧 ** 相信刚接触android不久的同志们,在面对产品提出的 : "自定义WebView页面中,长按文本的弹出选项.点击选择后,分享.转发.收藏选择文本" 这样的需求时,第一反应大部分是:这是系统行为,如果实现需要在web端实现. 但是web端实现的局限性太大,曾经也有过监听系统粘贴板,在用户点击复制的时候实现其他的逻辑,但是这样用户体验不好,所以自定义WebView中长按的弹出菜单,并在点击时返回选中文本的小控件闪亮登场

android阅读器长按选择文字功能实现代码

前言: 有时候我们需要实现长按选择文字功能,比如阅读器一般都有这个功能,有时候某个自定义控件上可能就有这种需求,如何实现呢?正好最近还算闲,想完善一下自己写的那个轻量级的txt文件阅读器(比如这个长按选择文字的功能就想加进去).于是花了两三天时间,实现了这个功能,效果还是不错的. 首先先看看效果图吧: 授人以鱼不如授人以渔,下面具体实现原理的教程. 1.实现原理 原理其实也不难,简单总结就是:绘制文字时把显示的文字的坐标记录下来(记录文字的左上右上左下右下四个点坐标),作用就是为了计算滑动范围.