android 系统复制,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);效果如图:

10a6bfa68c599e6c131cbdf66adb09ad.png

************************************************************************

下面详细介绍下:

(1)获取剪贴板管理器:

ClipboardManager mClipboardManager =(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);ClipboardManager mClipboardManager =(ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);

(2)创建能够存入剪贴板的ClipData对象(ClipData对象中包含一个或多个ClipData.Item对象):

A. 创建普通字符型ClipData:

ClipData mClipData =ClipData.newPlainText("Label","Content");//‘Label’这是任意文字标签ClipData mClipData =ClipData.newPlainText("Label", "Content"); //‘Label’这是任意文字标签

B.创建URL型ClipData:

ClipData.newRawUri("Label",Uri.parse("http://www.baidu.com"));ClipData.newRawUri("Label",Uri.parse("http://www.baidu.com"));

C. 创建Intent型ClipData:

ClipData.newIntent("Label", intent);ClipData.newIntent("Label", intent);

注意:上面三种方法只在ClipData对象中创建了一个ClipData.Item对象,如果想向ClipData对象中添加多个Item应该通过ClipData对象的addItem()方法添加。

(3)将ClipData数据复制到剪贴板:

ClipboardManager.setPrimaryClip(ClipData对象);ClipboardManager.setPrimaryClip(ClipData对象);

(4)从剪贴板中获取ClipData数据:

ClipboardManager.getPrimaryClip();

ps:普通字符串,URL和Intent三种数据使用情况:

(1)普通字符:就是普通字符串的剪切,复制,粘贴。

(2)URL:在复制的时候可以复制一个URL,这个URL可以是请求ContentProvider的URL,在粘贴的时候调用ContntProvider获取数据,并使用。

(3)Intent:如,在记事本应用中长按某一个记录本条目,这时会创建删除这个记事本的Intent,并添加到剪贴板,当用户将这个记事本条目拖到垃圾桶松开时,应用会从剪贴板中获取Intent并执行,这个记事本条目就被删除了。

点赞 (0)赏分享 (0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值