在我的应用程序中,我有一个EditText,用户只有读访问权,没有写访问权。
在代码中,我设置android:enabled="false"。
虽然EditText的背景变成了黑色,但当我点击它时,键盘就会弹出来,我可以更改文本。
我应该设置什么来禁用EditText?
在我的应用程序中,我有一个EditText,用户只有读访问权,没有写访问权。
在代码中,我设置android:enabled="false"。
虽然EditText的背景变成了黑色,但当我点击它时,键盘就会弹出来,我可以更改文本。
我应该设置什么来禁用EditText?
当前回答
这将使您的编辑文本被禁用。
editText.setEnabled(false);
通过使用这个
editText.setInputType(InputType.TYPE_NULL);
将使您的Edittext不显示您的软键盘,但如果它连接到物理键盘,它将允许您输入。
其他回答
有多重是如何实现多重伤残的。
editText.setShowSoftInputOnFocus(假);和editText.setFocusable
防止编辑文本在某些文本中显示键盘书写。但光标仍然可见,用户可以粘贴一些文本。
editText.setCursorVisible(假)
隐藏光标。我不知道你为什么要这么做。用户可以输入文本和粘贴。
editText.setKeyListener(空)
我觉得这样最方便。没有办法用户如何输入文本,但小部件仍然与OnClickListener工作,如果你想触发操作时,用户触摸它
editText.setEnabled(假);
完全禁用EditText。它是字面上的“只读”,用户不能在其中输入任何文本,(例如)OnClickListener不能与它一起工作。
文本编辑文档
我相信正确的方法是设置android:editable="false"。
如果你想知道为什么我的链接指向TextView的属性,你的答案是,因为EditText从TextView继承:
EditText是一个薄薄的贴面 配置自身为的TextView 可编辑的。
更新: 正如下面的评论中提到的,editable已弃用(从API级别3开始)。您应该使用inputType(值为none)。
使用TextView代替。
在类中设置以下属性:
editText.setFocusable(false);
editText.setEnabled(false);
它会像你要求的那样顺利工作。
使用android:editable="false"是Depracted。相反,你需要使用android:focusable="false"