Android中数据的复制和粘贴的实现粗解

通过标题你就可以猜到,本篇博客并不会介绍Android中数据复制和粘贴的源码实现流程、逻辑架构等,我只是根据google提供的文档稍微整理一下,平常基本上是用不到的,有什么不对的地方,劳烦各位大声指出!!
文本的复制和粘贴将由ClipboardManager进行管理(默认的InputView是支持粘贴复制的),它提供多种数据类型的拷贝和粘贴,包括文本、复杂的数据结构、二进制数据流等;其中剪贴板是有系统持有的,剪贴板在同一时刻只能持有一个ClipData,当然一个ClipData里面可以包含过个ClipData.Item,其实真实的数据由ClipData.Item持有的;在使用Intent作为ClipData的数据体时,被粘贴的应用将由于这个Intent指向的应用的快捷键!!!(没有试过)

在Android系统中专门有一个系统服务负责数据的复制和粘贴的,他就是ClipBoardManager,当然了,这个Manager只是对内部的Service进行封装之后暴露给开发者的接口。获取ClipBoardManager的实例对象很简单,Android系统中几乎所有的Manager实例都是通过这种方法获取的:

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

一个ClipData包含一个ClipDescription和至少一个ClipData.Item对象。ClipDescription包含带粘贴的元数据和一个关于有效MIME的数组,ClipData.Item.coerceToText()使用此方法可以强行将剪贴板上的数据转换成一个CharSequence对象,其中Intennt会被转换成一个Intent的URI对象,然后通过使用URI转换成字符串。

复制文本:

ClipboardManager clipboard = (ClipboardManager)
        getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("simple text","Hello, World!");
clipboard .setPrimaryClip(clip);

粘贴文本:

ClipboardManager clipboard = (ClipboardManager) getSystemService(Cont
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值