如何在Edittext中禁用复制粘贴按钮

时间:2014-08-09 11:40:55

标签: android

我正在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(){})"。 我正在寻找数小时才能得到解决方案。请给我解决方案。

3 个答案:

答案 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事件执行相同的操作。