文章目录
- 1.复制内容要剪切板
- 2.清除剪切板
- 3.获取剪切板内容
这个功能也是很常见了,一般都是为了方便用户操作,比如复制订单编号。 不废话,下面就来看看具体是怎么操作的。
1.复制内容要剪切板
代码语言:javascript复制tv_order_copy.setOnClickListener {
//获取剪切板管理器
val cm: ClipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
//设置内容到剪切板
cm.primaryClip = ClipData.newPlainText(null, item.orderId)
ToastUtils.show(context, "已复制")
}
非常简单,首先获取剪切板管理器,然后设置内容即可 可以设置的内容有3中类型:
- newPlainText
- newHtmlText
- newIntent
2.清除剪切板
代码语言:javascript复制tv_order_clear.setOnClickListener {
val cm: ClipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
//要api28以上
cm.clearPrimaryClip()
} else {
cm.primaryClip = ClipData.newPlainText(null, null)
}
}
在api等级28以上,直接调用clearPrimaryClip()即可,以下,重新设置为空即可。
3.获取剪切板内容
代码语言:javascript复制iv_order_get.setOnClickListener {
val cm: ClipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
if (cm.hasPrimaryClip() && cm.primaryClip != null) {
//cm.primaryClip.itemCount
val text = cm.primaryClip.getItemAt(0).text
ToastUtils.show(context, text.toString())
}
}
在有内容的情况下,这里的代码是取的第一个,即getItemAt(0).text,如果有多个的情况下,且有取多个的需求,这里的下标取值就要根据cm.primaryClip.itemCount来动态设置了。