基本上只要用这个方法就可以
/**
* 复制文本到系统剪切板
* */
public static void copyTextToSystem(Context context,String text){
ClipboardManager cm = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData mClipData = ClipData.newPlainText("Label", text);
cm.setPrimaryClip(mClipData);
}
/**
* 从系统剪切板获取文本
* */
public static String getSystemCopyText(Context context){
ClipboardManager cm = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
return cm.getPrimaryClip().toString();
}
对于文本控件需要文本被复制的时候,需要对控件的textIsSelectable属性进行设置
ClipData可以设置三种数据:
//普通字符串的剪切,复制,粘贴。
ClipData.newPlainText("Label", text);
//在复制的时候可以复制一个URL,这个URL可以是请求ContentProvider的URL,在粘贴的时候调用ContntProvider获取数据,并使用。
ClipData.newRawUri("Label",Uri.parse("http://www.baidu.com"));
//
ClipData.newIntent("Label", intent);
上面三种方法只在ClipData对象中创建了一个ClipData.Item对象,如果想向ClipData对象中添加多个Item应该通过ClipData对象的addItem()方法添加。