如何解决如何避免复制侦听器对Android中的粘贴做出反应?
当用户将某些内容复制到剪贴板时,我想在我的应用程序中运行Toast消息。这就是为什么我在活动中实现了这样的侦听器的原因:
class MainActivity : AppCompatActivity() {
var mPrimaryChangeListener = OnPrimaryClipChangedListener {
Toast.makeText(applicationContext,"You have copied something!",LENGTH_SHORT).show()
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
val clipboard = this.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
clipboard.addPrimaryClipChangedListener(mPrimaryChangeListener)
}
// ...
}
问题在于,当从剪贴板粘贴某些文本时,Toast也会显示,我希望仅当用户复制文本时才会发生。我该如何解决?
解决方法
我在一个仿真器上尝试了您的示例,该示例可以正常工作。
该文档说以下内容:
当主剪辑更改时,由ClipboardManager调用的回调。
如果这在您的测试设备上不起作用,您可以尝试在触发回调后保存剪贴板字符串,然后下次将其与剪贴板进行比较。
如果两个字符串相同,则意味着用户要么粘贴剪贴板中的文本,要么只是再次复制了相同的文本。
然后,如果两个字符串不同,就可以显示吐司。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。