安卓之ClipboardManager的使用
项目中用到的复制和粘贴,这时候就要用到ClipboardManager
早期的Android剪切版只能复制文本信息。在API11对ClipboardManager进行了升级,使用它可以通过ClipData复制文本,uri和Intent对象。
下面给出案例
int sdk=android.os.Build.VERSION.SDK_INT;
if (sdk < 11) {
android.text.ClipboardManager clipboard=(android.text.ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText("出入需要设置的字符串")
if(clipboard.hasText()){
String text=clipboard.getText().toString();
}
}
sdk的版本小于11,使用text包下的clipboardmanager类,,但是在sdk版本大于11时,剪切板传递数据使用的setText()和getText()方法被弃用了,使用Intent包下的clipboardmanager类。
int sdk=android.os.Build.VERSION.SDK_INT;
if(sdk>=11){
android.content.ClipboardManager clipboard=(android.content.ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE);
if (clipboard.getText() != null) {
String text=clipboard.getText().toString();
}
sdk版本大于11时clipboardmanager下的settext和gettext方法也是被弃用的,使用新的ClipData类。
ClipData类的使用:
ClipData对象中包含一个或者多个ClipData.Item对象
1.创建普通的字符型:ClipData mClipData = ClipData.newPlainText("Label", "Content");
2.创建URL型:ClipData.newRawUri("Label", Uri.parse("http://www.baidu.cn"));
3.创建Intent型:ClipData.newIntent("Label", intent);
上面三种方法只在ClipData对象中创建了一个ClipData.Item对象,如果想向ClipData对象中添加多个Item应该通过ClipData对象的addItem()方法添加。
使用clipboardmanager的setPrimaryClip(传入ClipData对象)和getPrimaryClip()
int sdk=android.os.Build.VERSION.SDK_INT;
if(sdk>=11){
android.content.ClipboardManager clipboard=(android.content.ClipboardManager)activity.getSystemService(Context.CLIPBOARD_SERVICE);
c.setPrimaryClip(ClipData.newPlainText("Label", "Content"));
if(c.hasPrimaryClip()){
ClipData clipData=c.getPrimaryClip();
String text = clipData.getItemAt(0).getText().toString();
}
}