zoukankan      html  css  js  c++  java
  • 【转】Android TextView支持拷贝&粘帖 textIsSelectable

    http://droidwolf.iteye.com/blog/1767800

    让TextView支持长按弹出系统自带的拷贝、粘贴功能,发现国内外的论坛提供的解决方法都不怎么理想。多数用editview来模仿,不过实现的效果实在不怎么好。
    从android sdk 11起google添加了新api,TextIsSelectable控制TextView是否支持拷贝、粘帖功能,不过这个功能在v11以下则不那么好彩了。
    查阅TextView源码发现setTextIsSelectable实际调用的是Editor类的相应方法,而Editor里面控制了拷贝、粘帖功能。顺藤摸瓜通过反射获取到mEditor变量再调用setTextIsSelectable里调用的方法,调出拷贝、粘帖功能。似乎这是个很好的方法。不过很遗憾在系统为4.x的不同设备里测试发现都不成功,不是没有mEditor变量就是mEditor返回null。看来这个Editor在不同的厂商也有不同的实现,google也把这个类标为hide。

    又仔细看了看TextView源码,发现setTextIsSelectable顺序调用了以下几个函数

    setFocusableInTouchMode(true);
    setFocusable(true);
    setClickable(true);
    setLongClickable(true);
    setMovementMethod( ArrowKeyMovementMethod.getInstance());
    setText(tv.getText(),BufferType.SPANNABLE );

    在v4、v8系统测试顺利调出拷贝、粘帖功能。

  • 相关阅读:
    C语言-数组指针
    关于知网文章下载
    SpringBoot静态资源文件存放位置
    ArchLinux安装的vscode修改插件源
    I/O复用的高级应用三:同时处理TCP和UDP服务
    Windows查看动态库/静态库位数的方法
    VS 窗口程序没有输出时
    Windows下编译Boost
    VS设置C++代码注释模板
    No Target Architecture
  • 原文地址:https://www.cnblogs.com/fanerblog/p/4853572.html
Copyright © 2011-2022 走看看