如何禁用EditText的复制和粘贴功能

3

我正在使用以下代码,但是当光标闪烁并且我单击粘贴按钮时,它不起作用。

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;
    }
});

我不想隐藏鼠标光标。

我该如何解决这个问题?


4
可能是如何禁用EditText复制/粘贴的重复问题。 - phpdroid
你的 XML 中是否有粘贴按钮,还是在 EditText 中打开菜单? - Sufian
@Sufian 它会打开 EditText 本身。 - skIndia
你正在运行哪个Android API级别? - Sufian
@Sufian 25 牛轧糖 7.1 - skIndia
显示剩余3条评论
4个回答

7

试试这个:

edittext.setLongClickable(false);
edittext.setTextIsSelectable(false);

5

您可以在xml文件中使用longClickable属性,如下所示:

 <EditText
    ... your edittext
   android:longClickable = "false"/>

或者您可以尝试在Java中使用,如下所示:
youredittext.setLongClickable(false);

2
您可以尝试以下代码,将您的EditTextLongClickable属性设置为false:

XML代码:

android:longClickable="false"

来自JAVA

edittext.setLongClickable(false);

0

也许现在已经太晚了,但或许我可以帮助其他人。大家都在谈论 setCustomSelectionActionModeCallback,但还有另一个回调函数 setCustomInsertionActionModeCallback 也需要设置。

这个回调函数接收完全相同的回调参数,因此您可以将此接口创建为 val 并传递给两种方法/函数。 在复制和粘贴之前,请检查代码语法,因为我自2019年以来一直在使用 Kotlin o.o

private ActionMode.Callback callback = 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;
}
});
edittext.setCustomSelectionActionModeCallback(callback) 
edittext.setCustomInsertionActionModeCallback(callback)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接