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

Posted

技术标签:

【中文标题】如何从 EditText 禁用仅剪切选项?【英文标题】:How to Disable Only Cut option From EditText? 【发布时间】:2019-02-03 20:52:46 【问题描述】:

我有两个用于用户名和密码的 EditText。第一个 UserName EditText 将是 Visible。它将检查 Valid UserName。然后,Password EditText 将可见。我希望用户复制用户名但不想剪切。 如何禁用剪切选项。 但下面的代码禁用所有选项。 代码:

     @Override
                                public boolean onCreateActionMode(ActionMode actionMode, Menu menu) 
                                    return false;
                                

                                @Override
                                public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) 

                                     return false;
                                

                                @Override
                                public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) 
                                    return false;
                                

                                @Override
                                public void onDestroyActionMode(ActionMode actionMode) 

                                
                            );

【问题讨论】:

【参考方案1】:

首先设置一个customSelectionActionModeCallback。 你可以通过它的 id 来识别 cut 选项:android.R.id.cut

所以您在 ActionMode.CallbackonCreateActionMode 中的代码如下所示:

public boolean onCreateActionMode(ActionMode actionMode, Menu menu) 
    MenuItem menuItem = menu.findItem(android.R.id.cut); 
    if (menuItem != null) 
        menuItem.setVisible(false);
    
    return true;

或者您甚至可以使用 menu.removeItem(android.R.id.cut) 将其删除。

还对 menu.findItem(android.R.id.cut) 进行 null 检查,因为它可能在对其调用 setVisible 时返回 null。

【讨论】:

以上是关于如何从 EditText 禁用仅剪切选项?的主要内容,如果未能解决你的问题,请参考以下文章

长按时启用 EditText(或按钮)

Android EditText禁用编辑但允许滚动

如何禁用 EditText 中的 SwiftKey(第三方键盘)行为?

Jmeter工具功能介绍

Android Oreo 禁用 EditText 的自动填充

从选项卡式片段导航时,如何避免聚焦最后一个 EditText?