我正在android中开发一个App,我想禁用onLongClick上的复制粘贴按钮, 我使用以下代码:
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;
}
});
但它显示错误为 " TextView类型中的方法setCustomSelectionActionModeCallback(ActionMode.Callback)不适用于参数(new ActionMode.Callback(){})"。 我正在寻找数小时才能得到解决方案。请给我解决方案。
答案 0 :(得分:1)
添加
import android.view.ActionMode.Callback;
到你的进口
或
如果您已经导入了另一个Callback
类,则更改
edittext.setCustomSelectionActionModeCallback(new Callback() {
到
edittext.setCustomSelectionActionModeCallback(new android.view.ActionMode.Callback() {
答案 1 :(得分:1)
您在上述方法中遇到错误,因为该方法包含在API Level 13+中,您当前的编译版本可能会设置为更低。
右键点击项目 - > 属性 - > “Android标签” - > 选择api等级13或更高。
如果你想要后退支持,你可以尝试这些技巧。
1)
OnLongClickListener mOnLongClickListener = new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
//since nothing is in here, nothing will happen.
return true;
}
};
2)
edtPassword.setLongClickable(false);
3)IN XML
android:longClickable="false"
注意:
您尝试的方法仅适用于API级别13+。但这些技巧将适用较低的aloso
答案 2 :(得分:0)
我找到了一个黑客。它的工作魅力在于:
OnLongClickListener mOnLongClickListener = new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
//since nothing is in here, nothing will happen.
setEnabled(false);
setEnabled(true);
return false;
}
};
对OnClickListener的onClick事件执行相同的操作。