如果我禁止使用爲什麼我可以輸入禁用的EditText?
editText.setEnabled(false);
我可以使用屏幕上的輸入方法(在仿真器和在G1)仍然輸入到它的一個EditText
插件。這是打算?我該如何解決這個問題?
如果我禁止使用爲什麼我可以輸入禁用的EditText?
editText.setEnabled(false);
我可以使用屏幕上的輸入方法(在仿真器和在G1)仍然輸入到它的一個EditText
插件。這是打算?我該如何解決這個問題?
我注意到,你無法通過點擊一個殘疾的EditText激活屏幕上的鍵盤,並且還DEL鍵不起作用,所以這看起來像一個bug。我在Android問題跟蹤器中將其作爲issue 2771提交。
我想你應該可以用你自己的函數編輯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