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

所属分类: Android / 软件编程 阅读数: 1366
收藏 0 赞 0 分享

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

更多精彩内容其他人还在看

AndroidGUI27中findViewById返回null的快速解决办法

 在用Eclipse进行Android的界面开发,通过findViewById试图获取界面元素对象时,该方法有时候返回null,造成这种情况主要有以下两种情形。第一种情形是最普通的。比如main.xml如下,其中有一个ListView,其id为lv_contactboo... 查看详情
收藏 0 赞 0 分享

Android中findViewById获取控件返回为空问题怎么解决

在Android程序中,有时候需要加载非原来activity中xml布局中的控件,来使Android程序的界面更加丰富。  我本身是在使用ViewFlipper中遇到的问题。public void onCreate(Bundle savedInstanceState) {supe... 查看详情
收藏 0 赞 0 分享

Android开发 -- 状态栏通知Notification、NotificationManager详解

本想自己写一个的,但是看到这篇之后,我想还是转过来吧,实在是非常的详细:在Android系统中,发一个状态栏通知还是很方便的。下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置?首先,发送一个状态栏通知必须用到两个类:  NotificationMa... 查看详情
收藏 0 赞 0 分享

Android开发之Activity详解

【Activity】  一个Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,例如拨号、拍照、发送email、看地图。每一个activity被给予一个窗口,在上面可以绘制用户接口。窗口通常充满屏幕,但也可以小于屏幕而浮于其它窗口之上。  一个应用... 查看详情
收藏 0 赞 0 分享

Android开发使用UncaughtExceptionHandler捕获全局异常

在集成了统计SDK(友盟统计,百度统计等)之后,有一个非常有利于测试的功能:错误分析!此功能能够将程序在运行中碰到的崩溃(runtimeException)问题反馈到服务器,帮助开发者改善产品,多适配机器。然而在公司Android开发中不集成这些SDK,那应该怎么实现这样的功能呢... 查看详情
收藏 0 赞 0 分享

Android UI设计系列之ImageView实现ProgressBar旋转效果(1)

提起ProgressBar,想必大家都比较熟悉,使用起来也是比较方便,直接在XML文件中引用,然后添加属性,运行就OK了,虽然使用ProgressBar很方便但是在我们开发的每一个应用基本上都有自己的主体风格,如果使用了系统自带的效果图,给人的感觉是和总体风格太不搭配了,看上去很... 查看详情
收藏 0 赞 0 分享

Android UI设计系列之自定义SwitchButton开关实现类似IOS中UISwitch的动画效果(2)

做IOS开发的都知道,IOS提供了一个具有动态开关效果的UISwitch组件,这个组件很好用效果相对来说也很绚丽,当我们去点击开关的时候有动画效果,但遗憾的是Android上并没有给我们提供类似的组件(听说在Android4.0的版本上提供了具有动态效果的开关组件,不过我还没有去... 查看详情
收藏 0 赞 0 分享

Android UI设计系列之自定义EditText实现带清除功能的输入框(3)

最近公司的产品在陆续做升级,上级领导给的任务是优化代码结构以及项目架构,力争把项目写的精巧简练,于是我们满工程找冗余...我们都知道每一个项目基本上都是有登陆页的,在登陆页中肯定是少不了输入框了,当我们在输入框中输入数据后如果输入的内容不正确或者是错误的或者是想重新输入,如果嗯键... 查看详情
收藏 0 赞 0 分享

Android UI设计系列之自定义TextView属性实现带下划线的文本框(4)

在Android开发过程中,如果Android系统自带的属性不能满足我们日常开发的需求,那么就需要我们给系统控件添加额外的属性了。假如有个需求是实现带下划线的文本显示(下划线),如果不使用自定义属性的话实现起来也不太难(起码我认为的实现方式是有许多种的),今天就讲解一下如何使用自... 查看详情
收藏 0 赞 0 分享

Android UI设计系列之自定义DrawView组件实现数字签名效果(5)

最近项目中有个新的需求,用户在完交易需要进行输入支付密码付款的时候,要让用户签下自己的签名,提起到数字签名这个东西,感觉有点高大上,后来想想数字签名的原理也不是太复杂,主要实现原理就是利用了View的绘图原理,把用户在屏幕上的手指移动轨迹显示在屏幕上,接着把在屏幕上显示的轨迹Vi... 查看详情
收藏 0 赞 0 分享
查看更多