Câu trả lời:
Tôi đã có cùng một câu hỏi nhưng tôi vẫn muốn đặt tùy chọn này trong tệp XML của mình vì vậy tôi đã nghiên cứu thêm một chút cho đến khi tôi tự tìm ra nó.
Thêm dòng này vào EditText của bạn.
android:inputType="textFilter"
Đây là một tip. Sử dụng dòng này nếu bạn muốn có thể sử dụng phím "enter".
android:inputType="textFilter|textMultiLine"
android:inputType="textPersonName"
bằng văn bản được đề xuất nhưng nó vẫn hiển thị hàng gợi ý (có biểu tượng mic).
android:inputType="textNoSuggestions"
bạn cũng nên đọc nó
android:inputType="textVisiblePassword"
hoạt động như một lá bùa
.
chấm được thêm vào cuối từ nếu hai khoảng trắng được gõ sau từ đó. Tôi đã sử dụng nó cho tìm kiếm trên thanh hành động Xem ((SearchView) MenuItemCompat.getActionView(searchItem)) .setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Cách thực hiện:
editText.inputType = InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
android:inputType="textNoSuggestions"
Nếu bạn đã có một số cờ được đặt, thì:
inputType = if (disableSuggestions) {
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS or inputType
} else {
inputType and InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS.inv()
}
android:inputType="textNoSuggestions|textPassword"
Cách tiếp cận đáng tin cậy nhất mà tôi đã tìm thấy để loại bỏ tự động hoàn thành là sử dụng
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
trên điều khiển EditText của bạn. Như charlie đã báo cáo trong một câu trả lời khác trên trang này,
android:inputType="textVisiblePassword"
là phiên bản XML của cờ này.
Bạn có thể kết hợp cờ này với
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
Tôi đã sử dụng InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS mà không có InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, hoạt động cho hầu hết các điện thoại, nhưng sau đó tôi đã gặp một điện thoại Samsung mà tôi vẫn đang tự động hoàn tất.
Android lập trình vô hiệu hóa tự động hoàn thành / tự động đề xuất cho EditText trong trình giả lập
đã đề xuất sử dụng InputType.TYPE_TEXT_VariATION_VISIBLE_PASSWORD.
Tôi đã thử điều này (cùng với InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) và nó đã hoạt động. Bạn có thể thấy lý do tại sao ngay cả một điện thoại có thể không đưa ra gợi ý rằng bạn không muốn tự động hoàn tất sẽ phải cho phép nó bị vô hiệu hóa cho trường mật khẩu. Nín thở, đây có thể là cách tốt nhất để có được những gì chúng ta muốn từ những chiếc điện thoại như vậy.
Trên một số thiết bị của tôi, phông chữ được thay đổi một chút bởi cờ này - đáng chú ý nhất là phân biệt số 0 (0) với chữ Oh (O) rõ ràng hơn, điều này rõ ràng sẽ rất quan trọng để hiển thị mật khẩu. Nhưng ít nhất nó đã hoạt động, và phông chữ mới không hấp dẫn.
Mặc dù bài đăng mà tôi thấy đề xuất này đã cũ, nhưng điện thoại tôi đã thử nghiệm rất gần đây - một chiếc Samsung Galaxy Note II (SPH-L900) có sẵn Android 4.1.2 từ Sprint. Bàn phím được chọn là "Bàn phím Samsung" và rõ ràng đây là mặc định cho điện thoại này khi khách hàng nhận được nó từ Sprint. Vì vậy, vấn đề này rõ ràng đã tồn tại trong nhiều năm qua đối với ít nhất một số dòng điện thoại quan trọng của Samsung.
Đối với những người như tôi, không có thiết bị thử nghiệm của Samsung, đây có thể là thông tin quan trọng.
Đối với phiên bản Android 8.0 trở lên, mã này không hoạt động và đối với chế độ xem tự động hoàn thành, mã này cũng không hoạt động, vì vậy tôi sẽ đề nghị bạn sử dụng mã dưới đây cho Vô hiệu hóa các đề xuất tự động trong 8.0 hoặc trên android vesrion sử dụng thuộc tính này của edittext android: quan trọngForAutofill = "không"
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:focusable="false"
android:imeOptions="actionDone"
android:maxLength="80"
android:maxLines="1"
android:textColor="@color/colorBlack"
android:textColorHint="@color/colorBlack"
android:importantForAutofill="no"
android:textSize="@dimen/_12sdp"
app:bFontsEdt="light" />
và đối với chế độ xem văn bản AutoComplete như thế này, hãy sử dụng Trường này để Vô hiệu hóa đề xuất tự động android: quan trọngForAutofill = "không" :
<AutoCompleteTextView
android:id="@+id/autocompleteEditTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_3sdp"
android:layout_marginTop="@dimen/_5sdp"
android:background="@null"
android:imeOptions="actionDone"
android:singleLine="true"
android:text=""
android:textColor="@color/colorBlack"
android:textColorHint="@color/colorGrayDark"
android:importantForAutofill="no"
android:textSize="@dimen/_12sdp" />
Vì đây vẫn là một vấn đề, tôi sẽ đăng câu trả lời này. android: inputType = "textVisiblePassword" hoạt động nhưng điều này là không mong muốn, trước tiên vì đó là sự trình bày sai về đầu vào và thứ hai vì nó vô hiệu hóa Gesture Typing!
Thay vào đó, tôi đã phải sử dụng BÓNG cờ textNoSuggestions và textFilter. Một trong hai đã không làm việc.
android:inputType="textCapSentences|textFilter|textNoSuggestions"
TextCapSentences là vì lý do khác. Nhưng kiểu đầu vào này đã giữ kiểu gõ vuốt và vô hiệu hóa thanh công cụ gợi ý.
Tôi đã nhận được điều này trên điện thoại samsung chạy 4.4.4. Điều này đã giải quyết vấn đề của tôi
android:inputType="text|textVisiblePassword|textNoSuggestions"
OK, vấn đề là - trong Eclipse bạn không nhận được đề xuất cho cờ có tên: textNoSuggestion
Và bạn không thể đặt nó trong tệp main.xml (nơi bạn thiết kế giao diện người dùng) vì thuộc tính đó cho inputType không được nhận dạng. Vì vậy, bạn có thể đặt nó trong mã bằng cách sử dụng int const:
EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);
Và cảm ơn jasta00 đã giúp tôi tìm ra câu trả lời cho câu hỏi này.
android:inputType="text|textNoSuggestions"
// 100% correct & tested
txtKey = (EditText) view.findViewById(R.id.txtKey);
txtKey.setPrivateImeOptions("nm");
txtKey.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
txtKey.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO);
}
Bạn chỉ có thể sử dụng setThreshold()
phương thức của EditText . Đặt ngưỡng thành giả sử 100 khi bạn không muốn hiển thị dự đoán. Nếu bạn muốn kích hoạt lại hiển thị dự đoán, hãy đặt nó trở lại một int nhỏ như 1 hoặc 2 tùy theo nhu cầu của bạn.