如何从 EditText 禁用复制和粘贴

Posted

技术标签:

【中文标题】如何从 EditText 禁用复制和粘贴【英文标题】:How To Disable Copy and Paste from EditText 【发布时间】:2018-02-24 11:22:44 【问题描述】:

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

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

我不想隐藏光标。

我该如何解决这个问题?

【问题讨论】:

How to disable copy/paste from/to EditText的可能重复 您的 XML 中有粘贴按钮还是在 EditText 本身中打开的菜单? @Sufian 它会打开 EditText 本身 您在哪个 android API 级别上运行它? @Sufian 25 牛轧糖 7.1 【参考方案1】:

试试这个:

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

【讨论】:

【参考方案2】:

您可以在 xml 文件中使用 longClickable,例如:

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

或者你可以在java中尝试

youredittext.setLongClickable(false);

【讨论】:

【参考方案3】:

你可以试试这个,就像下面的代码一样让你的 editext LongClickable false

来自 XML

android:longClickable="false"

来自 JAVA

edittext.setLongClickable(false);

【讨论】:

【参考方案4】:

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

【讨论】:

这与OP在他的问题中所写的相同。另外,请添加一些文字来解释您添加的代码。

以上是关于如何从 EditText 禁用复制和粘贴的主要内容,如果未能解决你的问题,请参考以下文章

在 EditText 上禁用剪贴板建议中的粘贴

如何从 EditText 禁用仅剪切选项?

Android - 防止edittext复制/粘贴并双击全选[重复]

android如何禁止edittext复制粘贴

EditText:禁用文本选择处理程序单击事件上的粘贴/替换菜单弹出

如何快速禁用 SkyFloatingLabelTextField 中的复制粘贴功能?