我使用下面的代码来监控剪贴板的变化,希望在完成操作后删除监视器。
但是clipboard.removePrimaryClipChangedListener { }需要传递参数,我该怎么办?
码
btnMonitor.setOnClickListener {
val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
clipboard.addPrimaryClipChangedListener {
if (clipboard.hasPrimaryClip() && clipboard.primaryClipDescription.hasMimeType(MIMETYPE_TEXT_PLAIN) ) {
var pasteData: String = ""
val item = clipboard.primaryClip.getItemAt(0)
pasteData = item.text.toString()
toast("Hi - " + pasteData)
}
}
clipboard.removePrimaryClipChangedListener { } //I don't know how to pass paramaters
}发布于 2018-11-15 20:27:45
为了实现删除OnPrimaryClipChangedListener,您需要引用之前“设置”的lambda。尝试按以下方式重新组织代码。
private val lambda = ClipboardManager.OnPrimaryClipChangedListener {
if (clipboard.hasPrimaryClip() && clipboard.primaryClipDescription.hasMimeType(MIMETYPE_TEXT_PLAIN) ) {
var pasteData: String = ""
val item = clipboard.primaryClip.getItemAt(0)
pasteData = item.text.toString()
toast("Hi - " + pasteData)
}
}稍后,您可以使用clipboard.addPrimaryClipChangedListener(lambda)和clipboard.removePrimaryClipChangedListener(lambda)添加和删除lambda。
https://stackoverflow.com/questions/53313988
复制相似问题