为什么我可以输入禁用的EditText?
如果我禁止使用为什么我可以输入禁用的EditText?
editText.setEnabled(false);
我可以使用屏幕上的输入方法(在仿真器和在G1)仍然输入到它的一个EditText
插件。这是打算?我该如何解决这个问题?
我想你应该可以用你自己的函数编辑Text.setOnClickListener(),并且如果你想编辑文本,请调用super.onClickListener()。
编辑:
下面的链接有一定的答案,这听起来更像正道:
Can we have uneditable text in edittext
我解决了这个问题,但该补丁只得到了包括在蜂窝。这就是为什么我创建了一个小项目,它将包含从2.1开始的版本的回溯修复。它包含修复bug 2771:http://code.google.com/p/android-fixes/
您可以从svn中检出“library”并将其包含在您的项目中。然后,而不是android.widget.EditText进口edu.ubbdroid.android.widget.EditText(它扩展了原来的EditText),问题应该消失:)
etComment.setEnabled(flag);
etComment.setFocusable(flag);
etComment.setFocusableInTouchMode(flag);
if (flag) {
etComment.requestFocus();
}
etComment.setFilters(new InputFilter[] { new InputFilter() {
@Override
public CharSequence filter(
CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
if (!flag) {
return source.length() < 1 ? dest.subSequence(dstart, dend) : "";
}
return null;
}
}
});
所有 你可以得到它!
也许你可以动态地用TextView替换并返回。但是您可能需要调整字体以匹配EditText。
使用此,它为我工作
setFocusableInTouchMode(boolean);
setFocusable(boolean);
edittext.setKeyListener(null);
这将帮助你
这很好,因为它使键盘不再出现。 – 2012-05-16 13:56:34
我知道,我所提供的答案有一个:)这个问题是不是*如何*作它不可编辑,但*为什么* setEnabled(false)仍然允许修改。我想知道我是否得到了支持widget的概念错误。 – 2009-05-26 19:46:23