1. 概述
操作 Android 系统剪贴板的类在 android.content
包下(SDK API 11+),主要包含下面三个类:
ClipboardManager
: 表示一个剪贴板ClipData
: 剪贴板中保存的所有剪贴数据集(剪贴板可同时复制/保存多条多种数据条目)ClipData.Item
: 剪贴数据集中的一个数据条目
剪贴板的简单使用可以自由选择(二者选一,区别再去是否用方法包裹)
2. 剪贴板的简单使用(使用方法包裹)
将字符串复制到粘贴板:
- 以下方法皆为工具方法,直接复制可用
//系统剪贴板-复制: s为内容
public static void copy(Context context, String s) {
// 获取系统剪贴板
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
// 创建一个剪贴数据集,包含一个普通文本数据条目(需要复制的数据)
ClipData clipData = ClipData.newPlainText(null, s);
// 把数据集设置(复制)到剪贴板
clipboard.setPrimaryClip(clipData);
}
从粘贴板获取内容:
//系统剪贴板-获取:
public static String getCopy(Context context) {
// 获取系统剪贴板
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
// 返回数据
ClipData clipData = clipboard.getPrimaryClip();
if (clipData != null && clipData.getItemCount() > 0) {
// 从数据集中获取(粘贴)第一条文本数据
return clipData.getItemAt(0).getText().toString();
}
return null;
}
2. 剪贴板的简单使用(不使用方法包裹)
复制:
// 获取系统剪贴板
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
// 创建一个剪贴数据集,包含一个普通文本数据条目(需要复制的数据)
ClipData clipData = ClipData.newPlainText(null, "需要复制的文本数据");
// 把数据集设置(复制)到剪贴板
clipboard.setPrimaryClip(clipData);
粘贴:
// 获取系统剪贴板
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
// 获取剪贴板的剪贴数据集
ClipData clipData = clipboard.getPrimaryClip();
if (clipData != null && clipData.getItemCount() > 0) {
// 从数据集中获取(粘贴)第一条文本数据
CharSequence text = clipData.getItemAt(0).getText();
System.out.println("text: " + text);
}
3. 剪贴板的数据改变监听
// 获取系统剪贴板
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
// 添加剪贴板数据改变监听器
clipboard.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() {
@Override
public void onPrimaryClipChanged() {
// 剪贴板中的数据被改变,此方法将被回调
System.out.println("onPrimaryClipChanged()");
}
});
// 移除指定的剪贴板数据改变监听器
// clipboard.removePrimaryClipChangedListener(listener);
参考:https://blog.csdn.net/xietansheng/article/details/70992032
https://blog.csdn.net/qq_39731011/article/details/81505858