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

时间:2018-08-29 06:47:43

标签: android android-layout android-edittext android-widget

我有两个用于用户名和密码的EditText。首先UserName EditText将是Visible。它将检查有效UserName。然后,密码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 个答案:

答案 0 :(得分:6)

首先设置 customSelectionActionModeCallback 。 您可以通过其ID标识剪切选项:android.R.id.cut

因此您在 ActionMode.Callback 中的 onCreateActionMode 中的代码如下:

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)进行空检查,因为在调用setVisible时它可能返回null。