Androidによるテキストのクリップボードへのコピー、およびClipboardManager関連の操作

この機能も非常に一般的で、通常は注文番号のコピーなどのユーザー操作の便宜のためです。
ナンセンスではありません、それがどのように機能するか見てみましょう。

1.コンテンツをクリップボードにコピーする

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.クリップボードをクリアします

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.クリップボードのコンテンツを取得する

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は動的に設定されます。

おすすめ

転載: blog.csdn.net/yechaoa/article/details/107081048