Android中的复制粘贴?
我们知道,windows系统中有剪贴板,Android中也有剪切板(ClipboardManager)
在android api 11之前,ClipboardManager全称(父类):android.text.ClipboardManager
在android api11之后,ClipboardManager全称(子类):android.content.ClipboardManager
早期版本的Android剪切板只能复制文本信息,
在api 11 之后,对ClipboardManager进行了升级,它可以通过(ClipData对象) 复制文本,URI,Intent。所以说android api 11之前版本中的,用来传递的数据使用的setText()和getText()方法被弃用了。,只能用ClipData对象来代替。
使用流程:
1.获取剪切板管理区
ClipboardManager mClipbord=(ClipboardManager)getSystemService(ClipBoard_service);
2.创建能够存入剪贴板的ClipData数据。使用ClipData类的静态方法(ClipData对象中可以包含一个或者多个ClipData.Item对象)
A。创建普通的字符型ClipData : 返回ClipData对象。,数据是text,描述是Lable,MIME类型是MimeType_text_plain
newPlainText(Label,text)
ClipData mclipData=ClipData.newPlainText("Label","Content");
B。 创建URL类型的ClipData
ClipData.newRawUri("Label",Uri.parse(http://www.baidu.com));
C。创建Intent类型的ClipData
ClipData.newIntent("Label",intent);
上面的三种方法只是在ClipData对象中创建了一个ClipData.Item对象,如果想往ClipData对象中添加多个Item项,应该使用ClipData对象的addItem()方法添加。
3.将ClipData数据复制到剪贴板:
clipboardmanager.setPrimaryClip(ClipData对象);
4.从剪贴板中获取ClipData数据:
clipboardmanager.getPrimaryClip();
5.解析ClipData中的数据。
从剪贴板中获得ClipData数据后,
需要把ClipData中的ClipData.Item都取出来呀。
剪贴板中的非text数据可以通过ClipData.Item.coerceToText()方法转为text处理。
第一:检查item项中是不是包含text,如果有,就会返会text数据。
第二,如果不包含text。之后看是否有URI。
如果这个URI是content URI,并且provider返回文字流,coerceToText()就返回该文字流;如果provider不返回文字流,或者这个URI根本不是content URI,coerceText()方法会返回URI的表达式,即 Uri.toString()。
第三,最后,如果这个item即不包含text,也不是URI,。那么它应该包含Intent。coerceToText()方法会把Intent对象转换为一个Intent URI返回,和Intent.toUri(URI_intent_scheme)一样。
一些介绍:
普通字符串,URL,Intent三种数据的使用情况。
(1)普通字符串:就是普通的字符串的剪切,复制,粘贴。
(2)URL:在复制的时候可以复制一个URL。这个URL可以是请求ContentProvider的URL,在粘贴的时候调用ContentProvider获取数据,并使用。
(3)Intent:在记事本应用中长按某一个记录本条目,这时会创建删除这个记事本的Intent。并添加懂啊剪贴板,当用户把这个记事本条目拖扯到垃圾桶时,应用会从剪贴板中获取Intent并执行,这个记事本条目就会被删除。
一些代码:
1.获取剪贴板服务。
ClipboardManager clipboard=(ClipboardManager)getSystemService(Context.clipboard_service);
2.把数据放入到ClipData对象中
text数据(文字)
ClipData clip = ClipData.newPlainText("simple text","hello,world!");
URI数据
private static final String Contacts="content://com.example.contacts";
private static final String Copy_path="/copy";
Uri copyUri=Uri.parse(Contacts+Copy_path+"/"+lastName);
ClipData clip=ClipData.newUri(getContentResolver(),"URI",copyUri);
Intent数据
Intent appIntent=new Intent(this,com.example.demo.myapplication.class);
ClipData clip=ClipData.newIntent("Intent",appIntent);
3.把ClipData对象放入到剪贴板中
clippboardmanamer.setPrimaryclip(clip);
实验的一些截图:
效果截图:
Android中的复制粘贴?相关推荐
- Android中的复制粘贴
The Clipboard Framework 当使用clipboard framework时,把数据放在一个剪切对象(clip object)里,然后这个对象会放在系统的剪贴板里. clip obj ...
- Android EditText禁止复制粘贴
1,自定义EditText package com.example.ui; import android.annotation.SuppressLint; import android.content ...
- 【转】vi编辑器中如何复制粘贴文本
转自:http://old.blog.edu.cn/user2/icethawless/archives/2006/1489681.shtml vi中多个文件相互之间的复制.粘贴功能简介 大家在vi编 ...
- 如何优雅的在ubuntu终端中使用复制粘贴
如何优雅的在ubuntu终端中使用复制粘贴 文章目录 前言 更改终端里面的复制粘贴命令 修改鼠标按键映射 介绍 安装 依赖 编译安装 配置文件 前言 安装了ubuntu20.4 后发现终端里面的复制粘 ...
- Android实现一键复制粘贴,兼容低版本系统(api 11以下)
Android实现一键复制粘贴,兼容低版本系统(api11以下) /** * 实现文本复制功能 * @param content * @return t ...
- 在vim中快速复制粘贴多行
在vim中快速复制粘贴多行 用vim写代码时,经常遇到这样的场景,复制多行,然后粘贴. 这样做: 1. 将光标移动到要复制的文本开始的地方,按v进入可视模式. 2. 将光标移动到要复制的文本的结束的 ...
- JavaScript 中的复制粘贴操作
在日常业务开发,比如复制后增加版权信息,点击复制,等场景中需要进行复制粘贴的操作,以下是几种实现方案. Clipboard API Clipboard API 提供了响应剪贴板命令(剪切.复制和粘贴) ...
- word中遇到复制粘贴无法使用的解决方法
通常我们使用MathType的时候,会在word中遇到复制粘贴无法使用的解决方法: 1.在MathType的安装目录下找到MathPage.wll(在MathPage文件夹中)和MathType Co ...
- 怎样解决在Linux系统中的复制粘贴问题
为什么通用的复制粘贴Ctrl+C.Ctrl+V快捷键不能在Linux中使用? Linux系统中,默认情况下Ctrl+C键用于向在前台运行的命令发送中断信号,即通常会停止正在运行的命令.故Ctrl+C. ...
最新文章
- arm编译安装openCV整理
- JZOJ 4.1 B组 删数
- shell 从1加到100
- java序列化异常_Java|序列化异常StreamCorruptedException的解决方法
- 经典算法题每日演练——第九题 优先队列
- UML用例图总结来源于网络
- 随机生成六位不重复数值
- php超市结算,超市物品结算简易程序代码
- UNIX标准化及实现之UNIX标准化、UNIX系统实现、标准和实现的关系以及ISO C标准头文件...
- centos7 安装java 8_CentOS 7.8下安装完美安装配置Rosetta
- idea ---- 快捷键
- 20200209:匹配子序列的单词数(leetcode792)
- java instanceof运算符_Java 中的instanceof 运算符
- 《Java程序员全攻略:从小工到专家》连载二:IT行情分布
- R语言安装包的几种方法
- 话单分析 之 含小数保留9位
- c语言实训自我总结报告,C++实训总结报告
- 笑傲江湖 琴箫合奏之曲
- linux查看pv数据量,linux下计算网站PV量、UV量
- LabVIEW应用程序在Windows版本之间的字体变化