android 长按复制,【转】TextView长按复制实现方法小结
有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息.类似的, 就像长按WebView或者EditText的内容就自动弹出复制选项.
这里面主要是2个特点:
1,用户只能浏览文本信息而不能编辑这些文本信息;
2,用户对着文本信息长时间点按可以弹出”复制” 选项实现复制;
网上有好多种方法可实现,也比较零散, 此处做个小结,希望有所帮助.
1,通过继承EditText,自定义TextView
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class NewTextViewextends EditText {
public NewTextView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public NewTextView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public NewTextView(Context context, AttributeSet attrs,int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@Override
protected boolean getDefaultEditable() {//禁止EditText被编辑
return false;
}
}
上面很关键的一个方法是getDefaultEditable(), return false;即禁止EditText被编辑,变成了不可编辑的EditText, 但同时具有EditText的长按复制功能. 更进一步的,如果查看EditText源码, 就发现源码中有一个方法protected void onCreateContextMenu(ContextMenu menu)
控制了EditText长按弹出的上下文菜单, 可以自定义这个方法且实现为空protected void onCreateContextMenu(ContextMenu menu){ }
然后在onTouchEvent事件中拦截处理自定义的点按事件, 弹出自定义的菜单.
原理如上, 更直白简单的方法是直接在xml中使用一个EditText, 并且将属性设置为 android:editable=”false” .
2,使用OnLongClickListener
直接使用TextView, 然后在代码里给TextView添加OnLongClickListener事件,长按时弹出自定义 “复制” 菜单(比如结合 PopupWindow做弹出菜单). 点击”复制” 就去获取TextView的内容.
当然, 这里只是获取内容, 如何将内容放入粘贴管理器还需要一个ClipboardManager 对象.它负责管理复制后粘贴的这件事.
1
2
3
ClipboardManager cmb = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
cmb.setText(content.trim());//将内容放入粘贴管理器,在别的地方长按选择"粘贴"即可
cm.getText();//获取粘贴信息
3,使用setTextIsSelectable()方法
代码中直接对TextView使用setTextIsSelectable()方法,将TextView设置成可点按选择的即可.
1
2
TextView tv =new TextView(context);
tv.setTextIsSelectable(true);
上面就是常见的长按文本信息弹出”复制”菜单的一些方法小结了,希望对大家有所帮助.
原文链接:http://www.androidchina.net/1258.html
[Android] TextView长按复制实现方法小结(转载)
android 长按复制,【转】TextView长按复制实现方法小结相关推荐
- android 长按复制,TextView长按复制实现方法 3种方法实践总结
TextView长按复制实现方法 3种方法实践总结 发布时间:2020-09-05 14:32:58 来源:51CTO 阅读:1003 作者:huangwenwenlili 实现效果 使用Contex ...
- android edittext长按复制,用EditText 实现 textView 长按复制效果,edittexttextview
用EditText 实现 textView 长按复制效果,edittexttextview 首先 EditText 是集成 TextView 的 我们直接将?EditText 设置为不可编辑来实现 其 ...
- TextView长按复制实现方法小结
有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息.类似的, 就像长按WebView或者EditText的内容就自动弹出复制选项. 这里面主要是2个特 ...
- textview长按复制_android-TextView的长按复制
引子 android很多app都支持文本的选中,复制.根据观察,主要分为两类: 1)自由复制(弹出框里面支持全选) 2)仅支持全选复制 今天工作中遇到了全选的需求,现总结出来,方便以后查阅. 自由复制 ...
- textview长按复制_TextView长按复制的实现方法(总结)
有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息.类似的,就像长按WebView或者EditText的内容就自动弹出复制选项. 这里面主要是2个特点 ...
- 【Android 内存优化】自定义组件长图组件 ( 长图滚动区域解码 | 手势识别 GestureDetector | 滑动计算类 Scroller | 代码示例 )
文章目录 一.GestureDetector 创建与设置 二.GestureDetector 触摸事件传递 三.触摸滑动操作 四.惯性滑动操作 五.长图滑动组件代码示例 六.运行效果 七.源码及资源下 ...
- 【Android 内存优化】自定义组件长图组件 ( 获取图像宽高 | 计算解码区域 | 设置图像解码属性 复用 像素格式 | 图像绘制 )
文章目录 一.获取图像真实宽高 二.计算解码区域 三.设置解码参数 内存复用 像素格式 四.图像绘制 五.执行效果 六.源码及资源下载 官方文档 API : BitmapRegionDecoder 在 ...
- android 截长图 方法,Android实现截屏与截长图功能
本文实例为大家分享了Android实现截屏与截长图功能展示的具体代码,供大家参考,具体内容如下 Demo在GitHub的地址:ScreenShoot 在Android开发中,有时候会遇到需要截屏分享到 ...
- 简书红米MIUI-7.5兼容性缺陷:长按文字时弹出的复制粘贴菜单缺少背景色
如题,文章阅读界面,长按文字时弹出的"复制|全选|网络搜索|分享"菜单缺少背景色,导致如下图所示文字重叠效果,属于操作系统级别用户体验缺陷 控件与正文重叠 不重叠 图片发自简书Ap ...
- Android实现截屏和截长图功能的几种方法
一般情况下各种型号的手机都会有自带的截屏功能,也会有诸如"开关机键+音量键"的截屏快捷键,只要手机是亮屏状态,都会将手机屏幕的可视区域(包含状态栏)全部截取下来. 如果开发中想要调 ...
最新文章
- 文件怎么上传远程服务器,怎么上传文件到远程服务器
- [react] 说说Context有哪些属性?
- 数据表的查看 mysql
- 小程序读取几种不同格式json数据(小程序json解析)
- 对于纯Java项目,JVM 各个类加载器的加载目标是什么?
- 2020杭电多校6 1006A Very Easy Graph Problem血泪史
- Fiddler Everywhere安装
- Allow CORS: Access-Control-Allow-Origin插件安装与使用教程【Chrome插件小白式教程】
- 移动办公——千脑云电脑 在线存储,中国人的在线办公室
- 大数据架构之-- Lambda架构
- python空格转义字符_python空格转义
- win11怎么快速锁屏 Windows11快速锁屏的设置方法
- _stdcall是什么?
- Bingo NFT 如何帮助交易者和投资者分析市场
- 使用vlc串流http视频链接
- 大学物理(英文版)笔记 chapter1 Measurement
- win10怎么更改账户名称_如何更改电脑系统账户名称?让你的名称看起来高大上,快来学习吧...
- 新浪微博AIR客户端开发---登陆
- Oracle导入dmp 文件
- 蓝桥杯题目:九宫幻方(C++实现)(DFC)(打卡1)
热门文章
- 如何在WIN10系统中设置护眼颜色绿豆沙?
- 机器学习 Python scikit-learn 中文文档(10)Scikit-Learn 处理文本数据
- Android Camera HAL3 - MultiCamera-HALBufferManager
- 四大开源3d游戏引擎探究(前言上)
- 软件工作量评估方法(一)
- ue4+html5动态加载pak,UE4 pak生成和加载
- 阿里云服务器密码重置
- tcprewrite批量修改报文ip地址二
- python 安装scapy_安装scapy时出错
- tcp 握手失败_TCP三次握手四次挥手总结(流程、常见问题、会发生的攻击、防范方法)...