如何删除Kotlin中ClipboardManager的OnPrimaryClipChangedListener



我使用以下代码来监视剪贴板的更改,我希望在完成操作时删除监视器。

但是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        
}

为了删除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

相关内容

  • 没有找到相关文章

最新更新