Android剪贴板的使用

本文介绍了操作Android系统剪贴板的相关类,包括ClipboardManager、ClipData和ClipData.Item。详细阐述了复制、粘贴的使用方法,如复制时创建ClipData并放入系统剪贴板,粘贴时从剪贴板获取数据。还说明了剪贴板数据改变监听的实现,添加和移除监听器的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作 Android 系统剪贴板的类在 android.content 包下(SDK API 11+),主要包含下面三个类:

ClipboardManager: 表示一个剪贴板
ClipData: 剪贴板中保存的所有剪贴数据集(剪贴板可同时复制/保存多条多种数据条目)
ClipData.Item: 剪贴数据集中的一个数据条目
 

复制的使用

copy_ocr_text.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //获取剪贴板管理器
        ClipboardManager clipboardManager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
        String ocrText = mTxtViewResult.getText().toString();
        // 创建普通字符型ClipData
        ClipData mClipData = ClipData.newPlainText("OcrText", ocrText);
        // 将ClipData内容放到系统剪贴板里。
        clipboardManager.setPrimaryClip(mClipData);
        Toast.makeText(TakePictureResult.this, "复制成功!", Toast.LENGTH_SHORT).show();
    }
});

"ocrText"是文本名可以是null,ocrText是传入的要复制的文本变量,

注意:上面方法只在ClipData对象中创建了一个ClipData.Item对象,如果想向ClipData对象中添加多个Item应该通过ClipData对象的addItem()方法添加。

粘贴的使用

// 获取系统剪贴板
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);

// 获取剪贴板的剪贴数据集
ClipData clipData = clipboard.getPrimaryClip();

if (clipData != null && clipData.getItemCount() > 0) {
    // 从数据集中获取(粘贴)第一条文本数据
    CharSequence text = clipData.getItemAt(0).getText();
    System.out.println("text: " + text);
}

剪贴板的数据改变监听

// 获取系统剪贴板
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);

// 添加剪贴板数据改变监听器
clipboard.addPrimaryClipChangedListener(new ClipboardManager.OnPrimaryClipChangedListener() {
    @Override
    public void onPrimaryClipChanged() {
        // 剪贴板中的数据被改变,此方法将被回调
        System.out.println("onPrimaryClipChanged()");
    }
});

// 移除指定的剪贴板数据改变监听器
// clipboard.removePrimaryClipChangedListener(listener);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值