最佳办法:
继承编辑类
@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);
}
![](https://img.haomeiwen.com/i2815884/1d649dd12660163c.png)
![](https://img.haomeiwen.com/i2815884/171ac6717f6ed447.png)
经过调试研究,可以直接拿到android.R.id.下面的变量直接判断
![](https://img.haomeiwen.com/i2815884/3b2539164a2f5f45.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;
![](https://img.haomeiwen.com/i2815884/080d561764dd11f9.png)
当然还有一些方法不推荐,比如禁用长按,这导致复制功能也没得了。
参考
Android开发如何禁止EditText选中复制粘贴 (sunofbeach.net)
android EditText禁止复制粘贴完整代码 - gisai - 博客园 (cnblogs.com)
Edittext禁止复制粘贴_edittext禁止粘贴-CSDN博客
网友评论