android禁止编辑框粘贴输入

2024-04-10  本文已影响0人  吉凶以情迁

最佳办法:
继承编辑类

    @Override
    public boolean onTextContextMenuItem(int id) {
    /*    id:16908319全选
        id:16908328 选择
        id:16908320剪贴
        id:16908321 复制
        id:16908322粘贴
        id:16908324 输入法*/
       // android.R.id.copy
        if (id == android.R.id.paste) {
            Toast.makeText(getContext(), "为了规范作业,不允许此操作!", Toast.LENGTH_SHORT).show();
            return true;
        /*    ClipboardManager clip = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE);
            clip.setText("增加的内容==>" + clip.getText());*/
        }
        return super.onTextContextMenuItem(id);
    }

image.png image.png

经过调试研究,可以直接拿到android.R.id.下面的变量直接判断


1712827821527.png

在Textview的源码中。有如下字段。


    static final int ID_SELECT_ALL = android.R.id.selectAll;
    static final int ID_UNDO = android.R.id.undo;
    static final int ID_REDO = android.R.id.redo;
    static final int ID_CUT = android.R.id.cut;
    static final int ID_COPY = android.R.id.copy;
    static final int ID_PASTE = android.R.id.paste;
    static final int ID_SHARE = android.R.id.shareText;
    static final int ID_PASTE_AS_PLAIN_TEXT = android.R.id.pasteAsPlainText;
    static final int ID_REPLACE = android.R.id.replaceText;
    static final int ID_ASSIST = android.R.id.textAssist;
    static final int ID_AUTOFILL = android.R.id.autofill;
image.png

当然还有一些方法不推荐,比如禁用长按,这导致复制功能也没得了。

参考

Android开发如何禁止EditText选中复制粘贴 (sunofbeach.net)
android EditText禁止复制粘贴完整代码 - gisai - 博客园 (cnblogs.com)
Edittext禁止复制粘贴_edittext禁止粘贴-CSDN博客

上一篇 下一篇

猜你喜欢

热点阅读