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

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

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

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


当前回答

使用TextView代替。

其他回答

从@渐近线对已接受答案的评论中,使用:

myEditText.setEnabled(false);
myEditText.setInputType(InputType.TYPE_NULL);

...鲍勃是你的叔叔。

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

像这样使用:

editText.setInputType(InputType.TYPE_NULL);

要禁用EditText的功能,只需使用:

EditText.setInputType(InputType.TYPE_NULL);

如果你想以某种方式启用它,那么你可以使用:

EditText.setInputType(InputType.TYPE_CLASS_TEXT);

你可以使用android:focusable="false",但也需要禁用光标否则 复制/粘贴功能仍然可以工作。

因此,使用

android:focusable="false"
android:cursorVisible="false"

禁用=焦点+点击+光标

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

下面是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"
    />