2016-01-29 19 views
5

Tôi biết có một vài câu hỏi đã được hỏi, nhưng tôi có một chút truy vấn khác.Cách dừng nhập dữ liệu sau khi độ dài EditText vượt quá giới hạn

Làm cách nào để đặt giới hạn số ký tự tối đa được nhập trong EditText? Cho dù tôi làm điều này

android:maxLength="7" 

hay này

((EditText)findViewById(R.id.zip)).setFilters(new InputFilter[] { 
    new InputFilter.LengthFilter(7) 
}); 

tôi vẫn có thể gõ vào trường văn bản, mặc dù nó không nhìn thấy và không được xem xét. Nếu tôi tiếp tục nhập, thông tin đầu vào sẽ bị ẩn sau khi giới hạn, nhưng test-suggestions tiếp tục xây dựng để có số lượng chữ cái cao hơn.

Giả sử giới hạn của tôi là 7 và tôi đã nhập 10 chữ cái, sau đó tôi sẽ chỉ thấy 7 chữ cái đầu tiên, nhưng đề xuất văn bản sẽ hiển thị 10 chữ cái. Hơn nữa, tôi cần phải nhấn backspace 3 lần để thực sự bắt đầu xóa các chữ cái trong từ 7 chữ cái được hiển thị của tôi.

Vì vậy, câu hỏi của tôi là: Có cách nào để ngừng nhận đầu vào sau một độ dài ký tự nhất định không?

PS: Không cần phải nói, nhưng mặc dù tôi không muốn đầu vào được nhập sau 7 chữ cái, tôi sẽ cho phép xóa hoặc backspace.

+0

** Giả sử giới hạn của tôi là 7 và tôi gõ 10 chữ cái, sau đó tôi sẽ chỉ nhìn thấy 7 chữ cái đầu tiên, nhưng văn bản đề xuất này sẽ hiển thị 10 chữ cái. Hơn nữa, tôi cần phải nhấn backspace 3 lần để thực sự bắt đầu xóa các chữ cái của từ 7 chữ cái được hiển thị của tôi ** - True. Tôi đã thử cùng và tìm thấy trường hợp chính xác – NarendraJi

Trả lời

9

Chỉ cần thêm này vào EditTe của bạn xt Nó chắc chắn sẽ hoạt động.

android:inputType="textFilter" 

Tôi đã thử như cũ và nó đã hiệu quả đối với tôi.

+0

Cảm ơn, nó hoạt động hoàn hảo. –

+0

Niềm vui bạn thân :) – NarendraJi

+0

Một người bạn tốt. –

3

thử này,

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

HOẶC

edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 
+0

Cảm ơn câu trả lời, nhưng mối quan tâm của tôi không phải là về các đề xuất. Đó là chủ yếu về dừng đầu vào. –

+0

yup đó là một lỗi vì vậy một khi bạn đã sửa đổi kiểu đầu vào maxLength sẽ hoạt động hoàn hảo, ngăn người dùng nhập nhiều bộ đệm hơn. – Madhur

+0

tìm hiểu http://stackoverflow.com/questions/12083183/android-edittext-max-length/19222238#19222238 – Madhur

-1

Như @Madhur sugested, trong xml EditText bạn thêm dòng tiếp theo:

Documentation

android:maxLength="7" 
+0

Cảm ơn, nhưng đó là những gì tôi làm ngay bây giờ. Tôi cần trợ giúp với việc dừng đầu vào như tôi đã đề cập trong câu hỏi của mình. –

+0

Đầu vào phải được dừng sau dòng đó, bạn có thể nhập onlu từ 0-6 ký tự trong văn bản chỉnh sửa của mình. – Stanojkovic

+0

** Giả sử giới hạn của tôi là 7 và tôi đã nhập 10 chữ cái, sau đó tôi sẽ chỉ thấy 7 chữ cái đầu tiên, nhưng đề xuất văn bản sẽ hiển thị 10 chữ cái.Hơn nữa, tôi cần phải nhấn backspace 3 lần để thực sự bắt đầu xóa các chữ cái trong từ 7 chữ cái được hiển thị của tôi **. Xem những gì OP đang nói – NarendraJi

1

này cuối cùng làm việc cho tôi:

edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); 
Các vấn đề liên quan