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

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


当前回答

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

其他回答

我试过以下几种方法:

codeEditText.setInputType(InputType.TYPE_NULL);

this.codeEditText.setOnFocusChangeListener(new OnFocusChangeListener() {

  @Override
  public void onFocusChange(View v, boolean hasFocus) {

    if (hasFocus) {

      pickCode();

    }

  }

});
this.codeEditText.setOnClickListener(new OnClickListener() {

  @Override
  public void onClick(View v) {

    pickCode();

  }

});

但问题是,如果编辑文本是表单中的第一个,那么 它获得焦点和pickCode()代码,用于启动一个新活动 直接调用。所以我修改代码如下,它似乎 工作得很好(除了我不能将焦点设置在文本编辑上,但是 我不需要):

itemCodeEditText.setFocusable(false);

this.itemCodeEditText.setOnClickListener(new OnClickListener() {

  @Override
  public void onClick(View v) {

    pickItem();

  }

});

最好的问候,

我们欢迎评论,

约翰Goche

将此添加到您的EditText xml文件:

<EditText ...
        android:clickable="false" 
        android:cursorVisible="false" 
        android:focusable="false" 
        android:focusableInTouchMode="false">
</EditText>

它的效果与android:editable="false"相同。对我有用,希望对你也有用。

让你的编辑文本

EditText editText;

editText.setKeyListener(空);

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

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

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

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

正如在其他回答中提到的,您可以执行setEnabled(false),但由于您正在询问如何通过XML设置它,下面是如何做到这一点。

将以下属性添加到您的EditText:

android:enabled="false"

简短的回答: 我使用android:focusable="false",它工作。点击收听现在也起作用了。