Android textview 实现长按*选择复制功能的方法
程序员文章站
2023-11-06 19:47:34
这里有一个大坑,我的viewgroup中有一个这个属性android:descendantfocusability=”blocksdescendants”
开始没有注意到...
这里有一个大坑,我的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 实现长按*选择复制功能的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
上一篇: 咳嗽吃什么好得快呢
下一篇: 怀孕可以吃菠萝蜜吗,菠萝蜜的好处与坏处