发布于 

系统剪贴板的标准式使用

更便捷使用系统剪切板功能

类解

ClipboardManager: 表示一个剪贴板管理器
ClipData: 剪贴板中保存的所有剪贴数据集
ClipData.Item: 剪贴数据集中的一个数据条目

复制内容

内容为obj.toString()

1
2
3
4
val clipboard=requireActivity().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
clipboard.text = obj.toString().trim({ it <= ' ' })
val clipData = ClipData.newPlainText(null, obj.toString())
clipboard.setPrimaryClip(clipData)
获取系统剪贴板内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ClipboardManager manager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
if (manager != null) {
if (manager.hasPrimaryClip() && manager.getPrimaryClip().getItemCount() > 0) {
CharSequence charSequence_addedText = manager.getPrimaryClip().getItemAt(0).getText();
String addedTextString = String.valueOf(charSequence_addedText);
try {
JSONObject obj = new JSONObject(addedTextString);
JSONArray scanner = obj.getJSONArray("scanner");
StringBuffer stringBuffer_scanner = new StringBuffer();
for (int i = 0; i < scanner.length(); i++) {
String s = (String) scanner.get(i);
stringBuffer_scanner.append(s);
}
tvFragXsScanner.setText(stringBuffer_scanner.toString());
} catch (JSONException e) {
e.printStackTrace();
}
}
}
清空剪贴板内容
1
2
3
4
5
6
7
8
9
ClipboardManager manager = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
if (manager != null) {
try {
manager.setPrimaryClip(manager.getPrimaryClip());
manager.setText(null);
} catch (Exception e) {
e.printStackTrace();
}
}
参考

Android官方文档复制和粘贴