在我的应用程序中,有一个注册屏幕,我不希望用户能够将文本复制/粘贴到EditText字段中.我在每个EditText上都设置了onLongClickListener,这样就不会显示显示复制/粘贴/输入方法和其他选项的上下文菜单.因此,用户将无法将其复制/粘贴到Edit字段中.

 OnLongClickListener mOnLongClickListener = new OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            // prevent context menu from being popped up, so that user
            // cannot copy/paste from/into any EditText fields.
            return true;
        }
    };

但是,如果用户启用了除Android默认键盘之外的第三方键盘,则会出现问题,该键盘可能具有复制/粘贴按钮,或者可能显示相同的上下文菜单.那么如何在该方案中禁用复制/粘贴呢?

如果还有其他复制/粘贴方法,请告诉我.(以及可能如何禁用它们)

任何帮助都将不胜感激.

推荐答案

如果您使用的是API级别11或更高级别,则可以通过停止显示复制、粘贴、剪切和自定义上下文菜单.

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

Returning false from onCreateActionMode(ActionMode, Menu) will prevent the action mode from being started(Select All, Cut, Copy and Paste actions).

Android相关问答推荐

list 合并失败,AGP 8.3.0

即使安装了Chrome和YouTube,Android对action_view a YouTube URL的意图也是空的

在以XML格式设置完整屏幕视图时可见App Compat按钮

Android Kotlin ImageView内置于Kotlin ImageView中.适配器未按预期更新

Android布局渲染问题

在Jetpack Compose中实现焦点突出的最佳方式?

如何在同一行中滚动自定义布局和惰性列,就好像它们是一个组件一样

使用 List 和 LazyColumn 重新组合所有项目

在java android studio项目上安装mapbox

在 compose 中做可变状态堆栈

如何在 Jetpack Compose 中设置卡片高度

如何在jetpack compose中通过lamda返回columnScope/RowScope

Jetpack Compose - 每次点击按钮都不起作用

如何在 Android 应用程序未激活/未聚焦时显示视图?

为什么我不能直接记住 mutableStateOf 可组合函数?

如何在jetpack compose中创建水印文字效果

为什么官方文档用大写字母表示val变量?

Android Studio:如何添加应用程序质量洞察窗口以查看 Android Studio 中的 Crashlytics 数据?

如何将新的 ComponentActivity 与 ViewBinding 和其他旧的 AppCompatActivity 组件一起使用

dagger2 抛出错误:如果没有 @Provides-annotated 方法就无法提供.在我的 android 项目的构建中