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

问题描述

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

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

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

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

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

解决方法

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

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