Android系统剪贴板的复制获取和清空使用
程序员文章站
2022-01-19 19:59:38
...
网上有很多复制粘贴的文章,只是很有可能当放到自己的程序中不知道如何处理,现在给出如下方法,希望对大家有用,Android 系统剪贴板的使用,包括 复制、获取和清空。那么,先来了解一下下面三个类:
ClipboardManager: 表示一个剪贴板
ClipData: 剪贴板中保存的所有剪贴数据集(剪贴板可同时复制/保存多条多种数据条目)
ClipData.Item: 剪贴数据集中的一个数据条目
复制内容
/** * 实现文本复制功能 * * @param content 复制的文本 */ 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()"); } }); // 移除指定的剪贴板数据改变监听器 // clipboard.removePrimaryClipChangedListener(listener);
若资源对你有帮助,浏览后有很大收获,不妨小额打赏我一下,你的鼓励是维持我不断写博客最大动力。
想获取DD博客最新代码,你可以扫描下方的二维码,关注DD博客微信公众号(ddblogs)。
或者你也可以关注我的新浪微博,了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)。
如对资源有任何疑问或觉得仍然有很大的改善空间,可以对该博文进行评论,希望不吝赐教。
为保证及时回复,可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)。
感谢你的访问,祝你生活愉快、工作顺心、欢迎常来逛逛。
推荐阅读
-
logcat命令使用方法和查看android系统日志缓冲区内容的方法
-
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
-
Linux系统中用于复制的cp和scp命令使用解析
-
android编程获取和设置系统铃声和音量大小的方法
-
使用wxPython获取系统剪贴板中的数据的教程
-
使用python获取CPU和内存信息的思路与实现(linux系统)
-
在Linux中使用Inxi获取系统和硬件信息的教程
-
android使用service和activity获取屏幕尺寸的方法
-
Linux系统中时间的获取和使用
-
使用拷贝的方式(adb push) 绕过Android系统和adb install直接安装APK