在我的应用程序中,我有一个EditText,用户只有读访问权,没有写访问权。
在代码中,我设置android:enabled="false"。
虽然EditText的背景变成了黑色,但当我点击它时,键盘就会弹出来,我可以更改文本。
我应该设置什么来禁用EditText?
在我的应用程序中,我有一个EditText,用户只有读访问权,没有写访问权。
在代码中,我设置android:enabled="false"。
虽然EditText的背景变成了黑色,但当我点击它时,键盘就会弹出来,我可以更改文本。
我应该设置什么来禁用EditText?
当前回答
今天我仍然使用editable="false",但也使用focusable="false"。
我认为我们需要使EditText不可编辑的情况,是因为我们想保持它的EditText样式(有下划线,有提示等),但它接受其他输入而不是文本。例如一个下拉列表。
在这种用例中,我们需要EditText可点击(因此enabled="false"不合适)。设置focusable="false"完成这个技巧,但是,我仍然可以长时间按住EditText并从剪贴板粘贴我自己的文本到它。这取决于你的代码和处理方式,甚至可能导致应用程序崩溃。
所以我也使用了editable="false"现在一切都很好,除了警告。
其他回答
在类中设置以下属性:
editText.setFocusable(false);
editText.setEnabled(false);
它会像你要求的那样顺利工作。
有多重是如何实现多重伤残的。
editText.setShowSoftInputOnFocus(假);和editText.setFocusable
防止编辑文本在某些文本中显示键盘书写。但光标仍然可见,用户可以粘贴一些文本。
editText.setCursorVisible(假)
隐藏光标。我不知道你为什么要这么做。用户可以输入文本和粘贴。
editText.setKeyListener(空)
我觉得这样最方便。没有办法用户如何输入文本,但小部件仍然与OnClickListener工作,如果你想触发操作时,用户触摸它
editText.setEnabled(假);
完全禁用EditText。它是字面上的“只读”,用户不能在其中输入任何文本,(例如)OnClickListener不能与它一起工作。
文本编辑文档
As android:editable="false"已弃用 在xml中
使用android:enabled="false",这很简单。为什么要使用更多的代码?
如果你想在java课上使用,你也可以通过编程的方式使用它
editText.setEnabled(false);
你可以使用android:focusable="false",但也需要禁用光标否则 复制/粘贴功能仍然可以工作。
因此,使用
android:focusable="false"
android:cursorVisible="false"
由于android:editable="false"已被撤销。你可以在EditText上使用InputType TYPE_NULL
像这样使用:
editText.setInputType(InputType.TYPE_NULL);