谁能告诉我如何使一个EditText不可编辑通过XML?我试着设置android:editable为false,但是

已弃用;而且 但是没有成功。


当前回答

Kotlin扩展选项:

fun AppCompatAutoCompleteTextView.setEditable(editable: Boolean) {
    if (!editable) {
        this.tag = this.keyListener
        this.keyListener = null
    } else {
        if(this.tag is KeyListener) {
            this@setEditable.keyListener = this@setEditable.tag as KeyListener
        }
    }
}

其他回答

试试这个:

android:inputType="none"

使用这段简单的代码:

textView.setKeyListener(null);

它的工作原理。

编辑:如果稍后要添加KeyListener,请执行以下操作

1:设置关键监听器为textView的标签

textView.setTag(textView.getKeyListener());
textView.setKeyListener(null);

2:从标签中获取关键监听器,并将其设置回textView

textView.setKeyListener((KeyListener) textView.getTag());

这样做的工作为我,我可以选择和复制到剪贴板,但我不能修改或粘贴。

android:enable="true"
android:textIsSelectable="true"
android:inputType="none"

android:editable已弃用,请改用inputType。

   <EditText
        android:id="@+id/editText_x"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight="70"
        android:inputType="none"
        android:hint="@string/enter_x" />

试试这段代码。它在我的项目中工作,所以它将在你的项目中工作。

android:editable="false"