- ClipboardManager: 表示一个剪贴板
- ClipData: 剪贴板中保存的所有剪贴数据集(剪贴板可同时复制/保存多条多种数据条目)
- ClipData.Item: 剪贴数据集中的一个数据条目
复制内容
public static void copy(String content) {
if (!TextUtils.isEmpty(content)) {
ClipboardManager cmb = (ClipboardManager) CloudReaderApplication.getInstance().getSystemService(Context.CLIPBOARD_SERVICE);
cmb.setText(content.trim());
ClipData clipData = ClipData.newPlainText(null, content);
cmb.setPrimaryClip(clipData);
}
}
获取系统剪贴板内容
public static String getClipContent() {
ClipboardManager manager = (ClipboardManager) CloudReaderApplication.getInstance().getSystemService(Context.CLIPBOARD_SERVICE);
if (manager != null) {
if (manager.hasPrimaryClip() && manager.getPrimaryClip().getItemCount() > 0) {
CharSequence addedText = manager.getPrimaryClip().getItemAt(0).getText();
String addedTextString = String.valueOf(addedText);
if (!TextUtils.isEmpty(addedTextString)) {
return addedTextString;
}
}
}
return "";
}
清空剪贴板内容
public static void clearClipboard() {
ClipboardManager manager = (ClipboardManager) CloudReaderApplication.getInstance().getSystemService(Context.CLIPBOARD_SERVICE);
if (manager != null) {
try {
manager.setPrimaryClip(manager.getPrimaryClip());
manager.setText(null);
} catch (Exception e) {
DebugUtil.error(e.getMessage());
}
}
}
剪贴板的数据改变监听
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() {
@Override
public void onPrimaryClipChanged() {
System.out.println("onPrimaryClipChanged()");
}
});