Android剪贴板的使用

版权声明: https://blog.csdn.net/qq_31255557/article/details/89819191

操作 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);

猜你喜欢

转载自blog.csdn.net/qq_31255557/article/details/89819191