Android 复制和粘贴功能
Android 复制和粘贴功能,需要调用系统服务ClipboardManager
来实现。
ClipboardManager mClipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
复制功能,首先要构造一个ClipData
对象,并且把要复制的数据和 MIME type 赋值给ClipData
,然后在把ClipData
传入mClipboardManager.setPrimaryClip()
方法,此时,我们完成了一个复制。
粘贴功能,调用mClipboardManager.hasPrimaryClip()
来判断粘贴板是否有数据,然后通过mClipboardManager.getPrimaryClipDescription().hasMimeType()
判断当前粘贴板的数据 MIME type是不是APP支持的,如果是APP支持的,获取数据mClipboardManager.getPrimaryClip()
。
下面就文本,URI,Intent的复制粘贴,分别提供一个demo。
文本
复制:
//第一个参数,是描述复制的内容,也可以和内容一样。
ClipData clipData = ClipData.newPlainText("copy from demo", mEtCopy.getText());
mClipboardManager.setPrimaryClip(clipData);
粘贴:
// 粘贴板有数据,并且是文本
if (mClipboardManager.hasPrimaryClip()&& mClipboardManager.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {ClipData.Item item = mClipboardManager.getPrimaryClip().getItemAt(0);CharSequence text = item.getText();if (text == null) {return;}mEtPaste.setText(text);
}
URI 复制
复制:
Uri uri = Uri.parse(uriStr);
ClipData clipData = ClipData.newUri(getContentResolver(), "copy from demo", uri);
mClipboardManager.setPrimaryClip(clipData);
粘贴:
if (mClipboardManager.hasPrimaryClip()&& mClipboardManager.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_URILIST)) {ClipData.Item item = mClipboardManager.getPrimaryClip().getItemAt(0);Uri uri = item.getUri();if (uri == null) {return;}mTvScheme.setText(uri.getScheme());mTvUri.setText(uri.toString());
}
Intent 复制
复制:
Intent intent = new Intent(this, TextActivity.class);
ClipData clipData = ClipData.newIntent("copy from demo", intent);
mClipboardManager.setPrimaryClip(clipData);
粘贴:
if (mClipboardManager.hasPrimaryClip()&& mClipboardManager.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_INTENT)) {ClipData.Item item = mClipboardManager.getPrimaryClip().getItemAt(0);Intent intent = item.getIntent();if (intent == null) {return;}startActivity(intent);
}
复制粘贴功能的API并不难理解,如果想了解更多的功能,可以看官方API指南。
Demo地址
Android 复制和粘贴功能相关推荐
- android 复制,粘贴
android 复制,粘贴流程很简单, 就是操作ClipboardManager写入或者获得数据, 需要导入 import android.text.ClipboardManager; //java代 ...
- 粘贴复制Android复制和粘贴的实现
最近研究粘贴复制,稍微总结一下,以后继续补充: main.xml如下: <RelativeLayout xmlns:android="http://schemas.android.co ...
- Android复制查词功能,有道词典Android 3.6版发布 新增“复制查词”功能
有道词典Android 3.6版发布 新增"复制查词"功能 2013-03-06 13:40:43 来源:网络 扫码可以: 1.在手机上浏览 2.分享给微信好友或朋友圈 摘要: ...
- Windows 技巧篇 - cmd的复制和粘贴功能
python 运行时的报错信息,想用百度查查原因是啥.然后百度手动把关键错误信息打印出来,要是复杂点的话-,总之,好麻烦! 后来我知道了 cmd 的复制粘贴功能,彻底解放了双手,真是太爽了! 复制功能 ...
- vi中多个文件相互之间的复制、粘贴功能简介!
大家在vi编辑中,常常遇到想把文件A里面的一行或多行,复制到B文件里面去 (可能很多人不知道怎么办),该怎么做了? 下面是几中方法: 1.如果你有多台机器,而且是联网的,你可以用netterm虚 ...
- android 粘贴文字,android 复制、粘贴文字
Android的剪切板(ClipboardManager) 注意:导包的时候 API 11之前: android.text.ClipboardManager API 11之后: android.con ...
- js 跨 firefox ie 的复制,粘贴功能做法
问题内容: Firefox实现IE下的复制粘贴功能 原讨论链接: http://community.csdn.net/expert/topicview1.asp?id=5115440 所属论坛: Ja ...
- Android中复制及粘贴功能
工作中用到了Android的Copy and Paste功能,上官网http://developer.android.com/guide/topics/text/copy-paste.html#Cli ...
- android 自由复制与粘贴功能
这个功能需要在android 2.1以上 主要设置如下: <TextView android:id="@+id/tviewt" android:layout_width=&q ...
最新文章
- java --级联操作(查询/更新)
- [ CodeForces 865 D ] Buy Low Sell High
- linux小波识别算法,人脸识别相关技术之小波变换
- element ui封装 tree下拉框
- I2C总线之(二)---时序
- 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件...
- 李彦宏:想活150得靠AI,雷军:下代旗舰机更AI | 大佬乌镇论道
- webstorm开发微信小程序
- android 5.0 屏幕录制,Android 5.0+ 视频录制 ScreenCapture
- 杭州英博电磁流量计通讯协议
- adobe flash java_Adobe 发布最后的 Flash 更新:官方强烈建议立即卸载
- java paypal开发详解_PayPal 开发详解(六):下载paypal立即付款SDK 并编译打包
- 常用网络js链接大全(jQuery、bootstrap、vue、ECharts、easyUI、React、maven、Mybatis、Spring、SpringMVC、Redis)
- 求解:Encountered internal error running command: TypeError: Cannot read property 'toLowerCase' of unde
- 关于本号,你想看的都在这里
- 计算机科学导论【第四版】读书笔记 (一)
- 中国求职者2亿私人简历泄露,APT情报资讯报告2018全球十大安全事件(10401字) (附PDF公号发“简历十大安全”下载)
- 有关PHP文档生成工具---PHPDocumentor
- Win10安装EZ-USB FX2LP CY7C68013(A)驱动程序的方法
- 服装办理软件的数据预备过程