谁能告诉我如何使一个EditText不可编辑通过XML?我试着设置android:editable为false,但是
已弃用;而且 但是没有成功。
谁能告诉我如何使一个EditText不可编辑通过XML?我试着设置android:editable为false,但是
已弃用;而且 但是没有成功。
当前回答
除了@mahe madi 你也可以试试这个
editText.setEnabled(false);
editor.setTextColor(Color.BLACK);
这个方法将隐藏光标,失去焦点,更重要的是设置文本颜色为黑色,就像TextView一样。
要恢复回editText,只需这样做即可获得editText的所有属性。
editText.setEnabled(true);
希望能有所帮助。
其他回答
如果你想在java代码中这样做,只需使用这一行来禁用它:
editText.setEnabled(false);
这是为了启用它:
editText.setEnabled(true);
试试这段代码。它在我的项目中工作,所以它将在你的项目中工作。
android:editable="false"
我使用EditText.setFocusable(false),如果我想编辑,再次设置为true。
Try
.setInputType(InputType.TYPE_NULL);
我试过以下几种方法:
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