在我的应用程序中,我有一个EditText,用户只有读访问权,没有写访问权。

在代码中,我设置android:enabled="false"。

虽然EditText的背景变成了黑色,但当我点击它时,键盘就会弹出来,我可以更改文本。

我应该设置什么来禁用EditText?


当前回答

对于禁用编辑EditText,我认为我们可以使用可聚焦或启用但是

使用android:启用=…或editText.setEnabled(…) 它还将EditText中的文本颜色更改为灰色。 当点击它没有效果 使用android: focusable =…或者editText.setFocusableInTouchMode(true) 它不会改变EditText的文本颜色 当点击它时,它会突出显示EditText的底线大约几毫秒

输出

其他回答

禁用=焦点+点击+光标

禁用焦点、单击和光标可见性对我来说很管用。

下面是XML格式的代码

<EditText
    android:id="@+id/name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:focusable="false"
    android:cursorVisible="false"
    android:clickable="false"
    />

如果你使用android:editable="false", eclipse会提醒你这条消息“android:editable已弃用:请使用inputType”。

所以,我使用android:focusable="false"代替,它为我工作得很好。

使用EditText.setFocusable(false)禁用编辑 setfocusableintouchmode (true)启用编辑;

使用此选项可禁用用户输入

android:focusable="false"

android:editable="false"此方法已弃用。

由于android:editable="false"已被撤销。你可以在EditText上使用InputType TYPE_NULL

像这样使用:

editText.setInputType(InputType.TYPE_NULL);