2012-08-23 49 views
74

我設置了文本的最大長度在一個EditText領域。的Android EditText上最大長度

<EditText 
      android:id="@+id/courseDescriptionField" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:inputType="textMultiLine" 
      android:lines="5" 
      android:maxLength="@integer/max_course_description_limit" 
      android:gravity="left|top" > 
     </EditText> 

對我來說,問題不過是,是,文本停止後140個字符出現,但它仍然繼續類型,除非文本只是沒有出現,但是但是,它會出現在「緩衝」 (意思是建議),如果這就是你所說的。

作爲一個方面說明,我使用的是TextWatcher跟蹤極限。是否有任何方法可以完全限制文本的數量,以便在有140個字符時,如果按下backspace/delete以外的內容,什麼都不會發生?

回答

89

Limit text length of EditText in Android

使用Android的可能重複:最大長度= 「140」

這應該工作。 :)

希望幫助

+2

我有同樣的問題,但是這不是爲我工作 – Mansi

+0

發生了什麼你的嗎?問一個新的問題,並把它放在你的代碼中,我會看看。把一個鏈接到你的問題,所以我可以找到它 –

+0

同樣的問題!有解決方案嗎? – mrroboaat

36

我有同樣的問題。

這裏是一個解決辦法

android:inputType="textNoSuggestions|textVisiblePassword" 
android:maxLength="6" 

THX到How can I turnoff suggestions in EditText?

+0

有趣的是,修改inputType允許maxLength正常工作,防止用戶輸入更多緩衝區。我希望Google解決這個問題。 –

+0

它看起來像只有textNoSuggestions是需要刪除字母時按下backkey。 –

+0

這很奇怪,不知道谷歌是否知道這個bug! – Skynet

12
EditText editText= ....; 
InputFilter[] fa= new InputFilter[1]; 
fa[0] = new InputFilter.LengthFilter(8); 
editText.setFilters(fa); 
5

我有同樣的問題。它可以完美的罰款,當你添加:

android:inputType="textFilter" 

到您的EditText

+0

這是正確的答案。謝謝 –

0

如果使用maxLength = 6,有時你正在進入這些字符的鍵盤稱爲建議頂部加入。所以當你刪除輸入的字母時,它會首先刪除建議,然後刪除EditText中的實際文字。對於您需要刪除suggestions.just添加

android:inputType="textNoSuggestions"` 

android:inputType="textFilter" 

它將刪除這些建議。

0

對我來說,這個解決方案的工作原理:

edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 
0

如果你想看到一個櫃檯的標籤,你可以使用app:counterEnabledandroid:maxLength,如:

<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:counterEnabled="true"> 

    <EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:maxLength="420" /> 

</android.support.design.widget.TextInputLayout> 

不要設置app:counterMaxLengthTextInputLayout因爲它將與android:maxLength導致成無形的字符的問題文本達到大小限制後發生衝突。

1

你可以試試這個

EditText et = (EditText) findViewById(R.id.myeditText); 
    et.setFilters(new InputFilter[]{ new InputFilter.LengthFilter(140) }); // maximum length is 140