Android剪切板(ClipboardManager)复制⽂本
和Window系统⼀样,Android也有剪切板(ClipboardManager)。
对应的类:
API 11之前: ClipboardManager
API 11之后: t.ClipboardManager
下⾯是代码
if (android.os.Build.VERSION.SDK_INT > 11) {
c.wPlainText(“sinaweibo”, buildShareCopyContent()));
} else {
c.Text());
}
1. 概述: 早期版本的Android剪切板只能复制⽂本(可以为复合⽂本)信息。在API 11后对ClipboardManager进⾏了升级,使之可以通过(ClipData)复制⽂本、Uri和Intent。
(注意:在Android11版本之后,原来利⽤剪切板传递数据使⽤的setText()和getText()⽅法被弃⽤了,只能使⽤ClipData对象来代替。)1. 使⽤流程:
(1)获取剪贴板管理器:ClipboardManager mClipboardManager =
(ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
(2)创建能够存⼊剪贴板的ClipData对象(ClipData对象中包含⼀个或多个ClipData.Item对象):
A. 创建普通字符型ClipData:ClipData mClipData = wPlainText(“Label”, “Content”);
C. 创建Intent型ClipData:wIntent(“Label”, intent);
注意:上⾯三种⽅法只在ClipData对象中创建了⼀个ClipData.Item对象,如果想向ClipData对象中添加多个Item应该通过ClipData对象的addItem()⽅法添加。
(3)将ClipData数据复制到剪贴板:ClipboardManager.setPrimaryClip(ClipData对象);
(4)从剪贴板中获取ClipData数据:PrimaryClip();
(5)解析ClipData中的数据。
1. 普通字符串,URL和Intent三种数据使⽤情况:
(1)普通字符:就是普通字符串的剪切,复制,粘贴。
(2)URL:在复制的时候可以复制⼀个URL,这个URL可以是请求ContentProvider的URL,在粘贴的时候调⽤ContntProvider获取数据,并使⽤。
(3)Intent:如,在记事本应⽤中长按某⼀个记录本条⽬,这时会创建删除这个记事本的Intent,并添加到剪贴板,当⽤户将这个记事本条⽬拖到垃圾桶松开时,应⽤会从剪贴板中获取Intent并执⾏,这个记事本条⽬就被删除了。
android11适配机型