Android copia texto al portapapeles y operaciones relacionadas con ClipboardManager

Esta función también es muy común, generalmente para la conveniencia de las operaciones del usuario, como copiar el número de pedido.
Sin tonterías, veamos cómo funciona.

1. Copie el contenido al portapapeles

tv_order_copy.setOnClickListener {
    //获取剪切板管理器
    val cm: ClipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
    //设置内容到剪切板
    cm.primaryClip = ClipData.newPlainText(null, item.orderId)
    ToastUtils.show(context, "已复制")
}

Es muy simple, primero obtenga el administrador del portapapeles y luego configure el contenido
. Hay 3 tipos de contenido que se pueden configurar:

  • newPlainText
  • newHtmlText
  • newIntent

2. Limpia el portapapeles

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)
    }
}

Si el nivel de API es 28 o superior, simplemente llame a clearPrimaryClip () directamente. A continuación, restablezca a vacío.

3. Obtener contenido del portapapeles

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())
    }
}

En el caso del contenido, el código aquí es el primero, a saber, getItemAt (0) .text. Si hay más de uno y se necesita más de uno, el valor del subíndice aquí debe basarse en cm.primaryClip.itemCount se establece dinámicamente.

Supongo que te gusta

Origin blog.csdn.net/yechaoa/article/details/107081048
Recomendado
Clasificación