我正在使用外部键盘访问我的设备。作为一项要求,我将在我的应用程序中禁用Android的EditText框中的任何复制/粘贴。 对于处理设备的复制/粘贴问题,我们使用下面的代码
public class MyEditText extends EditText{
---
boolean canPaste() {
return false;
}
---
private void init() {
this.setCustomSelectionActionModeCallback(new ActionModeCallbackInterceptor());
this.setLongClickable(false);
this.addTextChangedListener(mTextWatcher);
}
private class ActionModeCallbackInterceptor implements ActionMode.Callback {
public boolean onCreateActionMode(ActionMode mode, Menu menu) { return false; }
public boolean onPrepareActionMode(ActionMode mode, Menu menu) { return false; }
public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; }
public void onDestroyActionMode(ActionMode mode) {}
}
}
答案 0 :(得分:0)
您不必扩展EditText,如果您使用的是API级别11或更高级别,则可以停止复制,粘贴,剪切和自定义上下文菜单。
edittext.setCustomSelectionActionModeCallback(new ActionMode.Callback() {
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
public void onDestroyActionMode(ActionMode mode) {
}
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
return false;
}
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return false;
}
});