android複製貼上剪下的功能
阿新 • • 發佈:2019-02-10
1.重新EditText onTextContextMenuItem(int id) 方法
// 系統常量
// 全選
private static final int ID_SELECT_ALL = android.R.id.selectAll;
// 複製
private static final int ID_COPY = android.R.id.copy;
// 黏貼
private static final int ID_PASTE = android.R.id.paste;
@Override public boolean onTextContextMenuItem(int id) { //監聽系統複製黏貼剪下的功能 if (id == android.R.id.paste) { String copy = getCopyText(); this.setText(copy); return true; } return super.onTextContextMenuItem(id); }
2設定,獲取設定的複製內容
/*** * 設定複製內容到複製系統 * @param label 描述 * @param content 複製內容 * @return */ public static boolean copyText(String label, String content) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { android.content.ClipboardManager clipboardManager = (ClipboardManager) ApplicationEntity.getApplication().getSystemService(Context.CLIPBOARD_SERVICE); if (clipboardManager == null) { return false; } clipboardManager.setPrimaryClip(ClipData.newPlainText(label, content)); return true; } else { android.text.ClipboardManager clipboardManager = (ClipboardManager) ApplicationEntity.getApplication().getSystemService(Context.CLIPBOARD_SERVICE); if (clipboardManager == null) { return false; } clipboardManager.setText(content); return true; } } /*** * 獲取複製內容 * @return */ public static String getCopyText() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { android.content.ClipboardManager clipboardManager = (ClipboardManager) ApplicationEntity.getApplication().getSystemService(Context.CLIPBOARD_SERVICE); if (clipboardManager == null || !clipboardManager.hasPrimaryClip()) { return ""; } // 檢查剪貼簿是否有內容 ClipData clipData = clipboardManager.getPrimaryClip(); if (clipData == null && clipData.getItemCount() <= 0) { return ""; } return clipData.getItemAt(0).getText().toString(); } else { android.text.ClipboardManager clipboardManager = (ClipboardManager) ApplicationEntity.getApplication().getSystemService(Context.CLIPBOARD_SERVICE); if (clipboardManager != null && clipboardManager.hasText()) { return ""; } return clipboardManager.getText().toString(); } }