1. 程式人生 > >android複製貼上剪下的功能

android複製貼上剪下的功能

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();
        }
    }