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