【发布时间】:2012-08-29 07:41:47
【问题描述】:
我正在设计一个适用于复杂对象列表的 Android 应用程序。一个对象包括带有一组属性(例如,重要性级别和上次查看时间)的文本或图形数据。我想通过遵循 3 条规则的复制和粘贴功能来帮助我的应用:
- 当用户复制对象然后将其粘贴到我的应用程序时,将添加具有相同属性的对象的完整副本。
- 当用户复制一个对象,然后将其粘贴到使用新的复制/粘贴 API (android.content.ClipboardManager) 的其他应用程序时,该应用程序将接收文本或图像,具体取决于对象表示的文本数据还是图形数据。如果是图片,该应用将以文件路径或媒体库内容 URI 的形式接收图片。
- 当用户复制一个对象,然后将其粘贴到使用老式已弃用 API (android.text.ClipboardManager) 的其他应用程序时,该应用程序将只接收由该对象表示的文本。如果对象表示图像,则该应用将接收文本表示形式的 URI,甚至是空文本。
到目前为止,我已经研究了 Google 文档并浏览了各种编程论坛,但没有找到任何关于如何执行此操作的答案或解释它不可行的解释。目前我有两个邪恶可供选择:
1) 创建一个与对象一起工作的内容提供者,并将内容 URI 复制到剪贴板。不幸的是,这意味着第 3 方应用程序为了检索文本或图像,必须知道我的内容提供者的内部组织,我当然不能假设。
2) 仅将文本数据(类型为 ClipDescription.MIMETYPE_TEXT_PLAIN)或仅复制到图像的 URI(类型为 ClipDescription.MIMETYPE_TEXT_URILIST)复制到剪贴板。在这种情况下,我无法在粘贴到自己的应用程序时保留对象的属性。
有什么想法吗?
【问题讨论】:
标签: android copy-paste clipboardmanager