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

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


当前回答

让你的编辑文本

EditText editText;

editText.setKeyListener(空);

会起作用,但就是听不到按键。

用户可以在编辑文本上看到光标。

你可以尝试editText.setEnabled(false);

这意味着用户看不到游标。简单地说,它将成为TextView。

其他回答

使用这段简单的代码:

textView.setKeyListener(null);

它的工作原理。

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

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

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

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

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

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

android:editable="false"

只需使用android:enabled="false"即可。这也会给EditText一个外观,使它看起来不可编辑。

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

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

你可以通过以下方法在edittext和editable之间切换:

public void toggleEditableOfEditText(EditText editText){
        if (editText.getKeyListener() != null) {
            editText.setTag(editText.getKeyListener());
            editText.setKeyListener(null);
        } else {
            editText.setKeyListener((KeyListener) editText.getTag());
        }
    }

然后使用这个方法使edittext可编辑或不可编辑:

toggleEditableOfEditText(editText);