1、复制文本到剪切板
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("key0", "你好吗??");
clipboard.setPrimaryClip(clipData);
2、从剪切板中获取文本
public class MainActivity extends AppCompatActivity {
private Handler handler = new Handler(Looper.myLooper()){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
// If the clipboard doesn't contain data, disable the paste menu item.
// If it does contain data, decide if you can handle the data.
if (!(clipboard.hasPrimaryClip())) {
Toast.makeText(MainActivity.this, "剪切板无数据", Toast.LENGTH_SHORT).show();
} else if (!(clipboard.getPrimaryClipDescription().hasMimeType(MIMETYPE_TEXT_PLAIN))) {
// This disables the paste menu item, since the clipboard has data but it is not plain text
Toast.makeText(MainActivity.this, "剪切板内不是纯文本数据", Toast.LENGTH_SHORT).show();
} else {
// This enables the paste menu item, since the clipboard contains plain text.
ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
String pasteData = item.getText().toString();
Toast.makeText(MainActivity.this, pasteData, Toast.LENGTH_SHORT).show();
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Android 10 中 只有默认输入法(IME)或者是目前处于焦点的应用, 才能访问到剪贴板数据,所以此处加个延时
handler.sendEmptyMessageDelayed(100,500);
}
}
3、官方文档
https://developer.android.google.cn/guide/topics/text/copy-paste.html#java