转自:
http://blog.csdn.net/uniquemei/article/details/52824000
http://www.cnblogs.com/mengdd/p/3572316.html
方法一:
1.复制字符串到剪贴板管理器
String text = "abcdefg";
ClipboardManager cmb = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
cmb.setText(text );
在TextView中的用法就是(长按复制)
textview.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
ClipboardManager cmb = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
cmb.setText(textview.getText());
ToastUtil.show("已复制");
return false;
}
});
2.由剪贴板管理器得到内容
ClipboardManager cmb = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
String text = cmb.getText().toString().trim();
方法二:
对于TextView还存在第二种方法,使用setTextIsSelectable()方法,或者在布局文件中设置TextView属性android:textIsSelectable=”true”
TextView tv = new TextView(context);
tv.setTextIsSelectable(true);
代码中直接对TextView使用setTextIsSelectable()方法,将TextView设置成可点按选择的即可。或者在布局文件中设置EditView属性
android:textIsSelectable="true"
3.Androidstudio提示
@deprecated Use {@link #setPrimaryClip(ClipData)} instead
要求将setText()用setPrimaryClip(ClipData)来代替
复制方法:
ClipboardManager clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
// 创建一个剪贴数据集,包含一个普通文本数据条目(需要复制的数据)
ClipData clipData = ClipData.newPlainText(null,text);
// 把数据集设置(复制)到剪贴板
clipboard.setPrimaryClip(clipData);
粘贴方法:
ClipboardManager mClipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
String resultString = "";
// 检查剪贴板是否有内容
if (!mClipboard.hasPrimaryClip()) {
Toast.makeText(HelloClipboardMainActivity.this,
"Clipboard is empty", Toast.LENGTH_SHORT).show();
}
else {
ClipData clipData = mClipboard.getPrimaryClip();
int count = clipData.getItemCount();
for (int i = 0; i < count; ++i) {
ClipData.Item item = clipData.getItemAt(i);
CharSequence str = item.coerceToText(HelloClipboardMainActivity.this);
Log.i("mengdd", "item : " + i + ": " + str);
resultString += str;
}
}
mResultTextView.setText(resultString);
}