欢迎来到天天文库
浏览记录
ID:39464557
大小:210.50 KB
页数:15页
时间:2019-07-03
《android复制粘贴》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、CopyandPaste版本:Android4.0r1 快速查看·用于复制粘贴数据的基于剪贴板的框架。·同时支持简单和复杂的数据,包括文本串、复杂的数据结构、文本和二进制流数据、程序 asset。·直接从剪贴板复制粘贴简单文本。·用contentprovider复制粘贴复杂数据。·需要API11版本。在本文中剪贴板框架剪贴板类ClipboardManagerClipData、ClipDescription和ClipData.ItemClipData常用方法将剪贴板中数据强制转换为文本复制到剪贴板中从剪贴板中粘贴复制到剪贴板中粘贴普通文本从contentURI粘贴数据粘贴Intent利用Cont
2、entProvider复制复杂数据将ID置入URI编码复制数据结构复制数据流设计高效的复制/粘贴功能关键类ClipboardManagerClipDataClipData.ItemClipDescriptionUriContentProviderIntent相关示例NotePad示例程序参阅ContentProvidersAndroid为复制和粘贴提供了强大的基于剪贴板的框架。该框架同时支持简单和复杂数据类型,包括文本字符串、复杂数据结构、文本和二进制流数据、甚至程序asset。简单文本数据直接存储于剪贴板内,而复杂数据则保存为一个引用,粘贴应用可利用内容提供器(contentprovider
3、)进行解析。复制和粘贴可在应用程序内部或多个实现此框架的应用程序之间进行。因为框架的一部分用到了contentprovider,本文讨论的内容与AndroidContentProviderAPI有些类似,这些API已在ContentProvider一章中描述。 剪贴板框架使用剪贴板框架时,可把数据放入剪辑(clip)对象,然后把该对象放入系统级剪贴板中。clip对象可以是以下三种形式:Text文本串。可以直接把字符串放入clip对象,然后把clip对象放入剪贴板中。需要粘贴字符串时,从剪贴板中获取clip对象,然后把字符串拷贝到应用程序的存储中即可。URIUri对象表示任何形式的URI。这主要
4、用于从contentprovider复制复杂数据。复制数据时,先将Uri对象放入一个clip对象,再把clip对象放入剪贴板中。需要粘贴数据时,先获取clip对象,再获取Uri对象,再把Uri解析到诸如contentprovider之类的数据源中,然后就能从此数据源中把数据拷贝到应用程序的存储中了。Intent一个Intent。这为复制应用程序快捷方式提供了支持。复制数据时,先创建一个Intent并把它放入一个clip对象,再把clip对象放入剪贴板。需要粘贴数据时,可以获取clip 对象并把Intent对象拷贝到应用程序的内存中。剪贴板同时仅保存一个clip对象。当应用程序把一个clip对象
5、放入剪贴板时,前一个clip对象将会消失。如果要允许用户把数据粘贴到应用程序中,没必要对所有类型数据都进行处理。在让用户选择粘贴之前,可以先对剪贴板中的数据进行检测。除了包含指定格式的数据之外,clip对象还包含了元数据,它能说明数据是属于哪种格式或MIME类型。此元数据有助于应用程序确定对剪贴板数据执行合适的操作。比如,假定应用程序主要是处理文本信息的,那就可以忽略包含URI和Intent的clip对象。还有可能要允许用户只粘贴文本,而不论剪贴板中的数据格式如何。要实现这个目标,可以把剪贴板数据强制转换为文本格式,然后粘贴这些文本。这将在将剪贴板内数据强制转换为文本一节中描述。 剪贴板类本节
6、描述类剪贴板框架中所用到的类。ClipboardManager在Android系统中,系统剪贴板由全局ClipboardManager类表示。此类不需要直接初始化,而是提交getSystemService(CLIPBOARD_SERVICE)来获取一个引用。 ClipData、ClipData.Item和ClipDescription要把数据加入剪贴板,可以创建一个ClipData对象,它包含了数据描述信息和数据本身。剪贴板每次只保存一个ClipData对象。一个ClipData包含了一个ClipDescription对象和一个以上的ClipData.Item对象。ClipDescriptio
7、n对象包含了clip相关的元数据信息。特别重要的是,它包含了一个clip数据所对应MIME类型的数组。把clip放入剪贴板后,粘贴应用程序可以利用此数组,程序可以检查此数组以确定其对这些MIME类型的处理能力。一个ClipData.Item对象包含了文本、URI或Intent数据:Text一个CharSequence。URI一个Uri。虽然可以是任何URI值,但通常是包含一个contentprov
此文档下载收益归作者所有