2009-05-26 29 views

回答

9

我注意到,你無法通過點擊一個殘疾的EditText激活屏幕上的鍵盤,並且還DEL鍵不起作用,所以這看起來像一個bug。我在Android問題跟蹤器中將其作爲issue 2771提交。

0

我想你應該可以用你自己的函數編輯Text.setOnClickListener(),並且如果你想編輯文本,請調用super.onClickListener()。

編輯:
下面的鏈接有一定的答案,這聽起來更像正道:
Can we have uneditable text in edittext

+0

我知道,我所提供的答案有一個:)這個問題是不是*如何*作它不可編輯,但*爲什麼* setEnabled(false)仍然允許修改。我想知道我是否得到了支持widget的概念錯誤。 – 2009-05-26 19:46:23

1

我解決了這個問題,但該補丁只得到了包括在蜂窩。這就是爲什麼我創建了一個小項目,它將包含從2.1開始的版本的回溯修復。它包含修復bug 2771:http://code.google.com/p/android-fixes/
您可以從svn中檢出「library」並將其包含在您的項目中。然後,而不是android.widget.EditText進口edu.ubbdroid.android.widget.EditText(它擴展了原來的EditText),問題應該消失:)

1
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; 
     } 
    } 
}); 

所有 你可以得到它!

1

也許你可以動態地用TextView替換並返回。但是您可能需要調整字體以匹配EditText。

2

使用此,它爲我工作

setFocusableInTouchMode(boolean); 

setFocusable(boolean); 
6
edittext.setKeyListener(null); 

這將幫助你

+1

這很好,因爲它使鍵盤不再出現。 – 2012-05-16 13:56:34

相關問題