Android EditText仅具有复制/选择选项

问题描述

我想要一个EditText,它只允许复制功能,但不允许编辑其中的文本。 我在这里使用TextInputEditText

方案: 我有一个窗体,默认情况下以“仅查看”模式打开。在这种模式下,所有文本都是可见的,但不可编辑。 当用户选择“编辑模式”时,表格以编辑模式显示。 在“编辑模式”下,所有文本都可以编辑。

我尝试过的事情: 我曾尝试使用setInputType(InutType.TYPE_NULL)setTextIsSelectable(true),但是它不起作用。 isFocusableisClickable组合都不起作用。 setEnabled(false)禁用了EditText上的所有内容,我想保留复制选项。

我不想使用简单的TextView,因为相同的文本是可编辑/不可编辑的,因此我需要使用EditText的规定,例如 InputType >,密码切换图标,错误结构等

是否有一种方法可以仅切换EditText的编辑功能,而不完全禁用视图?

解决方法

您可能想要editText.setKeyListener(null),这似乎在很大程度上阻止了键盘的弹出(如果选择了一些文本,我会得到它,但是我无法对其进行编辑)。只需记住要抓取并存储KeyListener,以便可以将其重新设置为重新启用内容

仅供参考,您还可以添加一个覆盖#filterInputFilter实现,并只交出将要覆盖的字符序列-因此,您基本上将原始文本保持不变。我认为KeyListener更好

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...