我无法禁用复制粘贴选项。在三星Galaxy S2上,如果我点击edittext,箭头就会出现并点击该箭头,所有选项都会出现。 onCreateContextMenu尚未被调用。在onUserInteration中,我只是使用setText()方法清除剪贴板信息,在模拟器上它正在工作,但不在真实设备上。请给我一个想法。我想要几个小时,但无法解决它。
答案 0 :(得分:0)
请参阅 How to disable edittext in android
您还可以将edittext设置为android:editable="false"
答案 1 :(得分:0)
将此添加到您要禁用复制粘贴选项的edittext。
edittext.setCustomSelectionActionModeCallback(new 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;
}
});
答案 2 :(得分:0)
要禁用复制粘贴,您需要停止选择然后再插入。 使用下面的代码,其100%正常工作的代码。
//This disable the paste
editText.setCustomInsertionActionModeCallback(new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
menu.clear();
return false;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
});
//This Disable selection of text
editText.setCustomSelectionActionModeCallback(new Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
menu.clear();
return false;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
});
editText.setLongClickable(false);
editText.setTextIsSelectable(false);
答案 3 :(得分:-2)
您可能想查看此问题 here.
显然,通过捕捉长触摸事件,您可以阻止复制粘贴工具激活,如下所示:
OnLongClickListener mOnLongClickListener = new OnLongClickListener()
{
@Override
public boolean onLongClick(View v)
{
// prevent context menu from being popped up, so that user
// cannot copy/paste from/into any EditText fields.
return true;
}
};
然后在EditText上设置刚刚创建的onLongClickListener,如下所示:
myEditTextView.setOnLongClickListener(mOnLongClickListener);