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

 更新时间:2017年04月22日 09:54:05   投稿:jingxian  
下面小编就为大家带来一篇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 实现长按自由选择复制功能的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Android开发中amera2 Preview使用详解

    Android开发中amera2 Preview使用详解

    这篇文章主要介绍了Android开发中amera2 Preview使用详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Android studio button 按钮 四种绑定事件的方法【实例代码】

    Android studio button 按钮 四种绑定事件的方法【实例代码】

    这篇文章主要介绍了Android studio button 按钮 四种绑定事件的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • Flutter 将Dio请求转发原生网络库的实现方案

    Flutter 将Dio请求转发原生网络库的实现方案

    这篇文章主要介绍了Flutter 将Dio请求转发原生网络库,需要注意添加NativeNetInterceptor,如果有多个拦截器,例如LogInterceptors等等,需要将NativeNetInterceptor放到最后,需要的朋友可以参考下
    2022-05-05
  • Android实现搜索保存历史记录功能

    Android实现搜索保存历史记录功能

    这篇文章主要介绍了Android实现搜索保存历史记录功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Android开发之自定义控件用法详解

    Android开发之自定义控件用法详解

    这篇文章主要介绍了Android开发之自定义控件用法,结合实例形式分析了Android自定义控件的具体功能、定义与使用方法,需要的朋友可以参考下
    2016-08-08
  • Android设计模式之单例模式解析

    Android设计模式之单例模式解析

    这篇文章主要为大家详细介绍了Android设计模式之单例模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • flutter material widget组件之信息展示组件使用详解

    flutter material widget组件之信息展示组件使用详解

    这篇文章主要为大家详细介绍了flutter material widget组件之信息展示组件的使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • Android高德地图marker自定义弹框窗口

    Android高德地图marker自定义弹框窗口

    这篇文章主要为大家详细介绍了Android高德地图marker自定义弹框窗口,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • android上实现0.5px线条的原理分析

    android上实现0.5px线条的原理分析

    这篇文章主要介绍了android上实现0.5px线条的原理分析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Android开发笔记 最好使用eclipse

    Android开发笔记 最好使用eclipse

    值得注意一点的是,虽然Myeclipse比eclipse功能更强大,但是在具体的安卓开发过程当中,最好还是选用eclipse,sdk跟eclipse的兼容性更好
    2012-11-11

最新评论