Android 复制文本内容到系统剪贴板(自由复制)
直接上代码:(对应的类:android.content.ClipboardManager)
//获取剪贴板管理器:
ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
// 创建普通字符型ClipData
ClipData mClipData = ClipData.newPlainText("Label", "这里是要复制的文字");
// 将ClipData内容放到系统剪贴板里。
cm.setPrimaryClip(mClipData);
上面的代码就可以将文字放到剪贴板了,然后找个输入框“粘贴”就行啦~
ps:API 11之前,复制到系统剪贴板是cm.setText(“复制的文字”);但这句已经失效了,在API11后对,对ClipboardManager进行了升级,改成cm.setPrimaryClip(mClipData),使之可以通过(ClipData)复制文本、Uri和Intent。正如上面示例;
***********************************************************************
如需自由复制TextView等控件的文字,只是要在该控件上加上这句就好了android:textIsSelectable="true",或者java代码加 setTextIsSelectable(true);效果如图:
************************************************************************
下面详细介绍下:
(1)获取剪贴板管理器:
ClipboardManager mClipboardManager =(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
(2)创建能够存入剪贴板的ClipData对象(ClipData对象中包含一个或多个ClipData.Item对象):
A. 创建普通字符型ClipData:
ClipData mClipData =ClipData.newPlainText("Label", "Content"); //‘Label’这是任意文字标签
B. 创建URL型ClipData:
ClipData.newRawUri("Label",Uri.parse("http://www.baidu.com"));
C. 创建Intent型ClipData:
注意:上面三种方法只在ClipData对象中创建了一个ClipData.Item对象,如果想向ClipData对象中添加多个Item应该通过ClipData对象的addItem()方法添加。
(3)将ClipData数据复制到剪贴板:
ClipboardManager.setPrimaryClip(ClipData对象);
(4)从剪贴板中获取ClipData数据:
ClipboardManager.getPrimaryClip();
ps:普通字符串,URL和Intent三种数据使用情况:
(1)普通字符:就是普通字符串的剪切,复制,粘贴。
(2)URL:在复制的时候可以复制一个URL,这个URL可以是请求ContentProvider的URL,在粘贴的时候调用ContntProvider获取数据,并使用。
(3)Intent:如,在记事本应用中长按某一个记录本条目,这时会创建删除这个记事本的Intent,并添加到剪贴板,当用户将这个记事本条目拖到垃圾桶松开时,应用会从剪贴板中获取Intent并执行,这个记事本条目就被删除了。
Android 复制文本内容到系统剪贴板(自由复制)的更多相关文章
- Android 复制文本内容到系统剪贴板的最简单实践
这个例子很简单,直接上截图和代码. 布局文件activity_copy.xml代码如下: <?xml version="1.0" encoding="utf-8&q ...
- 对于pycharm和vscode下,从外部复制文本内容为python字符串内容是会自动加\u202a解决办法
先来看下这个python3源代码,表面上看没有语法毛病,如果源代码字符串内容是手动复制过来的文本内容,在pycharm和vscode下始终提示: pywintypes.error: (2, 'Shel ...
- js 实现点击复制文本内容
js 实现点击复制文本内容 <table> <tr><td>姓名:<span onclick="copyContent(this);" ...
- vim复制内容到系统剪贴板
vim提供了y键盘操作用于复制文本,但是复制之后的文本位于当前窗口的缓冲区中,不在系统剪贴板中,这给跨程序文本拷贝代码很来很多麻烦.搜索发现,可以使用]y指令快速将选定的文本复制到系统剪贴板中. 顺便 ...
- js复制文本内容到剪贴板
记录一下使用clipboardData复制不成功. 1.定义一个按钮执行复制 <div> <button type="button" id="copyR ...
- Vim-复制选中内容至系统剪贴板,光标移动到指定行的行首和行尾
1.全选并复制到系统剪贴板 ggVG或ggvG 然后 "+y gg 让光标移到首行,在vim才有效,vi中无效 V 是进入Visual(可视)模式 G 光标移到最后一行 "+y 复 ...
- jQuery按钮复制文本内容
这种方法能保证文本内容被复制到windows剪切板,代码示例是复制url <!doctype html> <html> <head> <meta charse ...
- Vue实现点击复制文本内容(原生JS实现)
需求: 实现点击订单编号复制内容 实现步骤: 这里我是在element 的table组件里实现的步骤,仅供参考,实际上实现思路都大同小异 首先在需要点击的地方,添加点击事件 <div class ...
- js实现复制文本内容到剪切板
function copyUrl() { var Url2=document.getElementById("url").innerText; var oInput = docum ...
随机推荐
- C++关键字:重学记录
const_cast dynamic_cast explicit
- 三、Scrapy中选择器用法
官方示例源码<html> <head> <base href='http://example.com/' /> <title>Example web ...
- win10 Ubuntu子系统安装&odoo10社区版安装
参考文档: http://www.cnblogs.com/odoouse/p/5995603.html https://www.jianshu.com/p/58090215bda8 一.win10 U ...
- 【Codeforces 340D】Bubble Sort Graph
[链接] 我是链接,点我呀:) [题意] 让你根据冒泡排序的规则 建立一张图 问你这张图的最大独立子集的大小 [题解] 考虑a[i]会和哪些点连边? 必然是在a[i]左边且比它大的数字以及在a[i]右 ...
- 联赛前集训日记Day2
考试 倒数第二,我已经废了= = T1 那么水的点转区间都看不出来 T2 裸的线段树生打了个啥都不是的分块 T3 枚举想骗spj的部分分,结果啥都没有 GG 刷题 改题改的也是心累,现在蒙的要死 生活 ...
- 清北学堂模拟赛d2t6 分糖果(candy)
题目描述总共有n颗糖果,有3个小朋友分别叫做L,Y,K.每个小朋友想拿到至少k颗糖果,但这三个小朋友有一个共同的特点:对3反感.也就是说,如果某个小朋友拿到3颗,13颗,31颗,333颗这样数量的糖果 ...
- 2.3. Configuring sudo Access-RedHat
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/2/html/Get ...
- hdu_1049_Climbing Worm_201311061331
Climbing Worm Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- Linux环境变量设置命令export(转)
Linux export命令用于设置或显示环境变量. 在shell中执行程序时,shell会提供一组环境变量.export可新增,修改或删除环境变量,供后续执行的程序使用.export的效力仅及于该次 ...
- MVC.Net: jqueryval错误
当使用Mvc.net创建Create表单后,firebug Create页面会出现404 Not Found - http://192.168.3.95:7001/bundles/jqueryval& ...