在我运行Android 4.1.2的三星Tab3上,多个副本复制到剪贴板会产生一个包含每个副本的剪贴板,这可以通过上滑键盘底部的一个按钮看到。我想通过编程方式删除所有这些副本,但是ClipboardManager似乎没有提供这样做的方法。如何删除已复制到剪贴板的所有内容?谢谢你,克里斯
new9mtju1#
ClipboardManager clipService = (ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE);ClipData clipData = ClipData.newPlainText("", "");clipService.setPrimaryClip(clipData);
ClipboardManager clipService = (ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("", "");
clipService.setPrimaryClip(clipData);
bhmjp9jg2#
来自API 28
ClipboardManager mCbm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); mCbm.clearPrimaryClip()
r1zk6ea13#
我不认为你可以。听起来像三星写了一个剪贴板扩展程序,可以监视剪贴板事件并保留所有内容的副本。如果(用户)不通过UI与历史列表交互,就无法访问历史。一种可能的解决方法:如果历史列表是受限/回收种类(即限制在10个,新项目覆盖旧项目),那么你可以通过重复发送空字符串(或无害的非重复字符串,如'empty 1','empty 2'等)来有效地删除它。无论你做什么,你最终都会覆盖一些用户认为重要的东西,并且用户会恨你。
64jmpszr4#
使用您提到的管理器,您可以使用setText为它设置一个空字符串以清除剪贴板。
ClipboardManager mClipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); mClipboardManager.setText("");
s4n0splo5#
要实际删除条目(而不是通过setPrimaryClip()将它们与空字符串交换),使用API级别28+:
ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); while (clipboardManager.hasPrimaryClip()) { clipboardManager.clearPrimaryClip() }
5条答案
按热度按时间new9mtju1#
ClipboardManager clipService = (ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("", "");
clipService.setPrimaryClip(clipData);
bhmjp9jg2#
来自API 28
r1zk6ea13#
我不认为你可以。听起来像三星写了一个剪贴板扩展程序,可以监视剪贴板事件并保留所有内容的副本。
如果(用户)不通过UI与历史列表交互,就无法访问历史。
一种可能的解决方法:如果历史列表是受限/回收种类(即限制在10个,新项目覆盖旧项目),那么你可以通过重复发送空字符串(或无害的非重复字符串,如'empty 1','empty 2'等)来有效地删除它。无论你做什么,你最终都会覆盖一些用户认为重要的东西,并且用户会恨你。
64jmpszr4#
使用您提到的管理器,您可以使用setText为它设置一个空字符串以清除剪贴板。
s4n0splo5#
要实际删除条目(而不是通过setPrimaryClip()将它们与空字符串交换),使用API级别28+: