Android中的复制粘贴—— ClipboardManager
文章目录
- 1、ClipboardManager
- 1.1、复制
- 1.2、粘贴
- 1.3、剪贴板的数据改变监听
- 1.4、清空剪切板内容
- 2、实战
1、ClipboardManager
ClipboardManager是Android系统剪贴板的主要类。使用剪切板功能主要包含以下三个类:
ClipboardManager: 表示一个剪贴板
ClipData: 剪贴板中保存的所有剪贴数据集(剪贴板可同时复制/保存多条多种数据条目)
ClipData.Item: 剪贴数据集中的一个数据条目
1.1、复制
// 获取系统剪贴板
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);// 创建一个剪贴数据集,包含一个普通文本数据条目(需要复制的数据)
ClipData clipData = ClipData.newPlainText(null, "需要复制的文本数据");// 把数据集设置(复制)到剪贴板
clipboard.setPrimaryClip(clipData);
1.2、粘贴
// 获取系统剪贴板
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);
}
1.3、剪贴板的数据改变监听
// 获取系统剪贴板
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);// 添加剪贴板数据改变监听器
clipboard.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() {@Overridepublic void onPrimaryClipChanged() {// 剪贴板中的数据被改变,此方法将被回调System.out.println("onPrimaryClipChanged()");}
});// 移除指定的剪贴板数据改变监听器
// clipboard.removePrimaryClipChangedListener(listener);
1.4、清空剪切板内容
void clearClipboard() {ClipboardManager manager = mClipboardManager;if (manager != null) {try {manager.setPrimaryClip(ClipData.newPlainText(null, null));} catch (Exception e) {Log.i(TAG, "clearClipboard: exception>>" + e.getMessage());}}
}
2、实战
工具类封装如下:
//保存文本内容到剪切板public void copyClicks(String text) {Context context = getApplicationContext();// 获取系统剪贴板ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);// 创建一个剪贴数据集,包含一个普通文本数据条目(需要复制的数据)ClipData clipData = ClipData.newPlainText(null, text);// 把数据集设置(复制)到剪贴板clipboard.setPrimaryClip(clipData);Toast.makeText(context, "已复制到剪切板", Toast.LENGTH_SHORT).show();}//从剪切板粘贴文本public String pasteClicks() {String text = "";Context context = getApplicationContext();// 获取系统剪贴板ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);// 获取剪贴板的剪贴数据集ClipData clipData = clipboard.getPrimaryClip();if (clipData != null && clipData.getItemCount() > 0) {// 从数据集中获取(粘贴)第一条文本数据text = clipData.getItemAt(0).getText().toString();}return text;}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
