Android剪贴板学习
学习目的:
有什么用?
怎么用?
原理?
一、关于ClipboardManager
android.text.ClipboardManager;
3.0版本之前,使用方法
- //复制
- ClipboardManagerclipMa=(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
- clipMa.setText(text);
- //粘贴
- ed2.setText(clipMa.getText());
可以看出在ClipBoardManager已经被Depressed了
3.0之后的版本
首先看一下所属的包,次ClipboardManager与之前的ClipboardManager不同
android.content.ClipboardManager
看一下它的源码你就知道了,哈哈哈,原来是继承的
publicclassClipboardManagerextendsandroid.text.ClipboardManager
ClipboradManager的主要方法
在这之前先看一下几个类
1.ClipData
2.Item是ClipData中的一个静态内部类
看一下Item的几个主要方法
3.ClipDescription
主要是对clipdata所包含数据类型MIMETYPE的描述:uri,intent,text
三种数据类型的使用场景?
1)Text:不用说了,简单的复制,Editext,网页内容的复制
2)Uri呢?
看一下api
Inmanycasesanapplicationcanpastevarioustypesofstreamsofdata.Forexample,ane-mailapplicationmaywanttoallowtheusertopasteanimageorotherbinarydataasanattachment.ThisisaccomplishedthroughtheContentResolvergetStreamTypes(Uri,String)andopenTypedAssetFileDescriptor(Uri,String,android.os.Bundle)methods.Theseallowaclienttodiscoverthetype(s)ofdatathataparticularcontentURIcanmakeavailableasastreamandretrievethestreamofdata.
明白了,如果电子邮件中要粘贴一张图片呢,哈哈,原来这样啊
3)Intent?
看一下ClipboardManager的已经被弃用的方法
ClipDescription的作用是什么?
如下代码所示
- if(clipboard.getPrimaryClipDescription().hasMimeType(
- ClipDescription.MIMETYPE_TEXT_URILIST)){
- }
可以通过ClipboardMananger的getPriMarayClipDescription()方法得到ClipData中的ClipDescription,然后判断相应的MIME类型,在做分别处理
ClipboardData的方法
两个静态方法:newPlainText()newIntent()
这两个方法就是对item的一个封装,生成一个新的item,将item放入到ClipData中,只是对类型进行了提前设置
Copy数据的完整代码演示
- //copy数据
- clipMa=(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
- description=newClipDescription(null,newString[]{ClipDescription.MIMETYPE_TEXT_PLAIN});
- ClipData.Itemitem=newClipData.Item(text);
- clipMa.setPrimaryClip(clipdata);
- //pase数据
- ClipDatadata_pase=clipMa.getPrimaryClip();
- ClipDescriptiondescription_pase=data_pase.getDescription();
- if(description_pase.hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)){
- //如果是txt
- Stringpase_txt=data_pase.getItemAt(0).getText().toString();
- }
上面copy数据可以简单写成
- ClipDataclip_txt=ClipData.newPlainText(null,"ooooooo-txt-txt");
- clipMa.setPrimaryClip(clip_txt);
更多相关文章
- android获取资源文件非主流方法
- Android权限申请:自带方法 + 第三方库实现
- Android 学习 之 关闭应用程序的方法
- 直接从数据库里修改桌面图标
- Android Realm数据库使用总结及采坑记录
- 一个hello程序的android内核模块编译方法及在模拟器中进行测试结
- Android实现计时与倒计时(限时抢购)的几种方法(线程)
- [Android新手学习笔记08]-如何让活动Activity保存临时数据用于恢
- Android 获取网络图片方法