学习目的:

有什么用?

怎么用?

原理?

一、关于ClipboardManager

android.text.ClipboardManager;

3.0版本之前,使用方法

        
  1. //复制
  2. ClipboardManagerclipMa=(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
  3. clipMa.setText(text);
  4. //粘贴
  5. 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的作用是什么?

如下代码所示

            
  1. if(clipboard.getPrimaryClipDescription().hasMimeType(
  2. ClipDescription.MIMETYPE_TEXT_URILIST)){
  3. }

可以通过ClipboardMananger的getPriMarayClipDescription()方法得到ClipData中的ClipDescription,然后判断相应的MIME类型,在做分别处理

ClipboardData的方法

两个静态方法:newPlainText()newIntent()

这两个方法就是对item的一个封装,生成一个新的item,将item放入到ClipData中,只是对类型进行了提前设置

Copy数据的完整代码演示

                
  1. //copy数据
  2. clipMa=(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
  3. description=newClipDescription(null,newString[]{ClipDescription.MIMETYPE_TEXT_PLAIN});
  4. ClipData.Itemitem=newClipData.Item(text);
  5. clipMa.setPrimaryClip(clipdata);
  6. //pase数据
  7. ClipDatadata_pase=clipMa.getPrimaryClip();
  8. ClipDescriptiondescription_pase=data_pase.getDescription();
  9. if(description_pase.hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)){
  10. //如果是txt
  11. Stringpase_txt=data_pase.getItemAt(0).getText().toString();
  12. }


上面copy数据可以简单写成

                    
  1. ClipDataclip_txt=ClipData.newPlainText(null,"ooooooo-txt-txt");
  2. clipMa.setPrimaryClip(clip_txt);

更多相关文章

  1. android获取资源文件非主流方法
  2. Android权限申请:自带方法 + 第三方库实现
  3. Android 学习 之 关闭应用程序的方法
  4. 直接从数据库里修改桌面图标
  5. Android Realm数据库使用总结及采坑记录
  6. 一个hello程序的android内核模块编译方法及在模拟器中进行测试结
  7. Android实现计时与倒计时(限时抢购)的几种方法(线程)
  8. [Android新手学习笔记08]-如何让活动Activity保存临时数据用于恢
  9. Android 获取网络图片方法

随机推荐

  1. 流程控制和函数和返回值
  2. JS函数类型及数据类型
  3. 学习了事件的冒泡与事件的委托代理以及表
  4. android Drawable转Bitmap| Bitmap转byte
  5. Android(安卓)-- 图片画画板(canvas、pain
  6. android之Tab选项卡控件
  7. Android(安卓)实现Activity后台运行
  8. android radiobutton选中字体颜色改变的
  9. [置顶] Android(安卓)GridView
  10. 【Android实战】Android中处理崩溃异常