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并执行,这个记事本条目就被删除了。

时间: 2024-11-05 12:23:12

Android 复制文本内容到系统剪贴板(自由复制)的相关文章

点击按钮复制文本内容 -- jquery Zclip -- Zero Clipboard

今天,经理让我做一个功能,复制文本框中的代码.以前在其他网站上经常见到过这个功能.只不过没有细细研究,今天也是个机会. 这里我使用的事jquery的zeroclipboard来实现复制功能.代码内容很简单,网上也有很多资料. Zero Clipboard作为一个独立的js库,它利用 Flash 进行复制,需要两个文件:ZeroClipboard.js 和 ZeroClipboard.swf . 具体实现如下: jsp页面:  <p>                               

Vim复制文件全部内容到系统剪贴板

参考:http://vim.wikia.com/wiki/%22copy_all_to_clipboard%22_howto vim中有两个buffer为系统的剪贴板,它们为: * (primary selection) 和 + (clipboard),其中 + 就是我们平常可以用Ctrl-C 和 Ctrl-V 的缓冲区,而要取出 * 缓冲区的内容,点击鼠标中间划轮即可. 查看缓冲区内容可以用命令 :reg ,上面两个buffer显示为 "* 和 "+ 1.Normal Mode gg

js实现复制文本内容到剪切板

js 部分 function copyUrl() { var Url2=document.getElementById("biao1").innerText; var oInput = document.createElement('input'); oInput.value = Url2; document.body.appendChild(oInput); oInput.select(); // 选择对象 document.execCommand("Copy")

js中复制文本内容到剪切板

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title></title> 5 <script type="text/javascript"> 6 function copyUrl2() 7 { 8 var Url2=document.getElementById("biao1").innerText; 9 var oInput = document.create

移动端点击按钮复制文本内容

<div><p>邀请码</p>//<p id="inviteCode" class="inviteCode">{{invite_code}}</p><input id="inviteCode" class="inviteCode" type="text" /><p class="copy">复制</

VI/VIM 无法使用系统剪贴板(clipboard)

来自: http://www.bubuko.com/infodetail-469867.html vim 系统剪贴板 "+y 复制到系统剪切板 "+p 把系统粘贴板里的内容粘贴到vim 在 Ubuntu 中使用VI/VIM时,发现无法使用系统的剪贴板. 上网一查,原来是少装了几个东西. 使用如下命令,安装相关的包.安装成功后,就可以使用系统剪贴板了. sudo apt-get install vim vim-scripts vim-gtk vim-gnome 使用如下命令查看: vim

iOS-UILable多行显示文本内容、根据文本长短自动计算文本框高度

iAronTalk Blog opens. The clean and elegantlife style deduces the deep thought of life. -=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= UILabel作为UIView家族中的一员,其应用广泛,使用方法清晰明了深受发烧友们喜欢,是为首选. 针

android实现文本复制到剪切板功能(ClipboardManager)

Android也有剪切板(ClipboardManager),可以复制一些有用的文本到剪贴板,以便用户可以粘贴的地方使用,下面是使用方法 注意:导包的时候 API 11之前: android.text.ClipboardManagerAPI 11之后: android.content.ClipboardManager 复制代码代码如下: /** * 实现文本复制功能 * add by wangqianzhou * @param content */  public static void cop

android 自由复制与粘贴功能

这个功能需要在android 2.1以上 主要设置如下: <TextView android:id="@+id/tviewt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello_world" android:textIsSelectable="true"/> 其