Android的文本和输入---复制和粘贴(一)

来源:互联网 发布:淘宝天猫双十一销售额 编辑:程序博客网 时间:2024/05/06 23:58

本文译自:http://developer.android.com/guide/topics/text/copy-paste.html

Android为复制和粘贴提供了强大的基于剪贴板的框架。它支持简单和复杂的数据类型,包括文本字符串、复杂的数据结构、文本和二进制流数据、甚至应用成程序的资产。简单的文本数据被保存在剪贴板中,而复杂的数据会保存一个引用,粘贴应用程序会使用内容提供器来解析这个引用。复制和粘贴工作可以在应用程序内部进行,也可以在实现了该框架的两个应用程序之间进行。

因为该框架部分使用了内容提供器,所以本专题会假设大家已经熟悉了Android Content Provider API,这个API在Content Providers专题中被介绍。

剪贴板框架

在使用剪贴板框架时,你把数据放入一个clip对象,然后把这个clip对象放到系统剪贴板。Clip对象可以是以下三种格式之一:

Text:一个文本字符串,你直接把这个字符串放入clip对象,然后把它放到系统剪贴板上。从剪贴板上获取这个clip对象,就可以把字符串复制到你的应用程序存储器中。

URI:代表人和URI格式的Uri对象。它主要用于从内容提供器中复制复杂的数据。把Uri对象放入一个clip对象,然后把这个clip对象放到系统的剪贴板上来复制数据。从系统剪贴板上获取clip对象,然后获取其中的Uri对象,解析其中的数据源(如内容提供器)并从数据源把数据复制到你的应用程序的存储器中。

Intent:它支持复制应用程序的快捷方式。要复制这种数据,你就要创建一个Intent对象,把它放到一个clip对象中,并这个clip对象放到系统剪贴板上。要粘贴数据,你就要从剪贴板上获取这个clip对象,然后把这个Intent对象放到你的应用程序的内存中。

系统剪贴板每次只会持有一个clip对象。当一个应用程序把一个clip对象放到剪贴板上时,前一个clip对象就会被废弃。

如果你希望允许用户把数据粘贴到你的应用程序中,你不必处理所有的数据类型。你可以在粘贴之前检查剪贴板上的数据,clip对象包含了告诉你MIME类型或可用类型的元数据。这个元数据会帮助你判断你的应用程序是否可以使用剪贴板上的数据。例如,如果你有主要想要处理文本,那么你可以忽略包含URI或Intent对象的clip对象。

你可能还想要让用户粘贴文本而不管剪贴板上的数据的格式。你可以强制把剪贴板数据转换成文本形式,然后粘贴这个文本。

 

原创粉丝点击