2014-03-26 21 views
6

我想阻止用戶將超過一定數量的字符插入到包含Edit-text實例的警報對話框中。我嘗試使用輸入過濾器。長度過濾器,但只顯示到所需長度的字符串。用戶仍然可以編寫更多的字符,並且當我嘗試刪除字符時,例如,在刪除足夠短的字符以使其短於限制(類似鍵盤記住的鍵)之前,什麼都不會發生。防止用戶在EditText框中達到大小限制後插入更多字符

編輯: 爲了更清楚,我已經嘗試過使用InputFilter。這確實強制傳遞給EditText的字符串大小,但正如我所說,我仍然可以繼續用鍵盤寫出沒有顯示在文本框中的字母。當我點擊刪除時,它會先刪除多餘的字母,只有在刪除了足夠多的字母后,我纔開始看到刪除文本框中的字母。我的請求方案:將字符串限制設置爲10.在我的鍵盤上打出15個字符。然後點擊退格鍵,看到文本框中的最後一個字母被刪除。 我希望現在更清楚。

有人可以幫忙嗎?

+0

我知道這是一歲,但我試圖找出是否有任何可以在這種情況下進行,以及。我猜沒有,因爲每個鍵盤處理預覽顯示本身,但也許有什麼。由於預覽與EditText中的實際內容之間的差異,肯定看起來像一個奇怪的用戶體驗。 – codebaum

回答

2

可以使用的EditText的下列屬性格式在AndroidManifest.xml

android:maxLength="8" 

現在,用戶無法在EditText上增加超過8個字符。

0

您還可以在運行時通過分配

youredittext.setMaxLength(8); 

設置該屬性你告訴你有內部警告對話框,您編輯文本,以便將此設置爲運行,並給予一試。

0

SEE THIS

TextView editEntryView = new TextView(...); 
InputFilter[] filterArray = new InputFilter[1]; 
filterArray[0] = new InputFilter.LengthFilter(8); 
editEntryView.setFilters(filterArray); 
0

看到這個答案的部分解決方法:https://stackoverflow.com/a/19222238/933656

您可以立即刪除在EditText上的最後一個字符,因爲沒有預覽鍵盤顯示(假設所有第三方鍵盤都尊重textNoSuggestions標誌)。唯一的問題是你失去了建議文本。

3

可能是遲到了,但如果有人有同樣的問題。

在佈局:

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

編程方式:

setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)}); 
setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 
+0

爲我工作謝謝.. :) – MohsinSyd

相關問題