Odpowiedzi:
Miałem to samo pytanie, ale nadal chciałem ustawić tę opcję w moim pliku XML, więc poszukałem trochę więcej informacji, dopóki sam tego nie odkryłem.
Dodaj tę linię do swojego EditText.
android:inputType="textFilter"
Tutaj jest wskazówka. Użyj tego wiersza, jeśli chcesz mieć możliwość użycia klawisza „enter”.
android:inputType="textFilter|textMultiLine"
android:inputType="textPersonName"
sugerowanym tekstem, ale nadal wyświetla wiersz sugestii (z ikoną mikrofonu).
android:inputType="textNoSuggestions"
też lepiej to przeczytaj
android:inputType="textVisiblePassword"
działa jak marzenie
.
znaku kropki dodanego na końcu słowa, jeśli po tym słowie zostaną wstawione dwie spacje. Użyłem go do wyszukiwania paska akcji ((SearchView) MenuItemCompat.getActionView(searchItem)) .setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Sposoby na to:
editText.inputType = InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
android:inputType="textNoSuggestions"
Jeśli masz już ustawione flagi, to:
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"
Najbardziej niezawodnym podejściem do pozbycia się autouzupełniania, jakie znalazłem, jest użycie
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
w kontrolce EditText. Jak podał Charlie w innej odpowiedzi na tej stronie,
android:inputType="textVisiblePassword"
jest wersją XML tej flagi.
Możesz połączyć tę flagę z
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
Używałem InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS bez InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD, który działał w przypadku większości telefonów, ale potem natknąłem się na telefon Samsung, dla którego nadal otrzymywałem autouzupełnianie.
Android programowo wyłącza autouzupełnianie / autosugestię dla EditText w emulatorze
co sugerowało użycie InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD.
Próbowałem tego (wraz z InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS) i zadziałało. Można zrozumieć, dlaczego nawet telefon, który nie może wziąć wskazówkę, że nie chcesz autouzupełnianie będzie mieć aby mogła ona być wyłączona na polu hasła. Bez wstrzymywania oddechu może to być najlepszy sposób na uzyskanie tego, czego chcemy od takich telefonów.
Na niektórych moich urządzeniach czcionka została nieznacznie zmieniona przez tę flagę - najbardziej zauważalnie, aby wyraźniej odróżnić zero (0) od Oh (O), co oczywiście byłoby ważne przy wyświetlaniu hasła. Ale przynajmniej zadziałało, a nowa czcionka nie była nieatrakcyjna.
Mimo że post, w którym znalazłem tę sugestię, był stary, telefon, na którym testowałem, był bardzo nowy - Samsung Galaxy Note II (SPH-L900) z Androidem 4.1.2 firmy Sprint. Wybrano klawiaturę „Samsung Keyboard” i najwyraźniej była to domyślna klawiatura tego telefonu, gdy klient otrzymał ją od Sprint. Tak więc ten problem najwyraźniej utrzymuje się przez lata przynajmniej w przypadku niektórych ważnych linii telefonów Samsung.
Dla tych z Was, którzy tak jak ja nie mają urządzenia testowego Samsunga, może to być ważna informacja.
W przypadku systemu Android w wersji 8.0 lub nowszej ten kod nie działa, a dla autouzupełniania tekstowego również ten kod nie działa, więc zasugeruję użycie poniższego kodu dla opcji Wyłącz automatyczne sugestie w wersji 8.0 lub nowszej Android Vesrion, użyj tej właściwości edittext android: ważneForAutofill = "nie"
<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" />
a w przypadku widoku tekstowego autouzupełniania, takiego jak ten, użyj tego pola, aby wyłączyć automatyczne sugestie android: importantForAutofill = "no" :
<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" />
Możesz rozwiązać ten problem, używając tego:
android:importantForAutofill="no"
Android O ma funkcję obsługi automatycznego wypełniania pól, po prostu używaj tego tylko w swoim xml, wyłączy podpowiedzi autouzupełniania
Ponieważ nadal jest to problem, opublikuję tę odpowiedź. android: inputType = "textVisiblePassword" działa, ale jest niepożądany, po pierwsze dlatego, że jest to błędne przedstawienie danych wejściowych, a po drugie, ponieważ wyłącza pisanie gestami!
Zamiast tego musiałem użyć OBU flag textNoSuggestions i textFilter. Ani jeden, ani jeden nie działał.
android:inputType="textCapSentences|textFilter|textNoSuggestions"
Tekst textCapSentences był z innych powodów. Ale ten typ inputType zachował pisanie przeciągnięciem i wyłączył pasek narzędzi sugestii.
Dostawałem to na telefonach Samsung z systemem 4.4.4. To rozwiązało mój problem
android:inputType="text|textVisiblePassword|textNoSuggestions"
OK, problem polegał na tym, że w Eclipse nie otrzymujesz propozycji flagi o nazwie: textNoSuggestion
I nie możesz go ustawić w main.xml (gdzie projektujesz interfejs użytkownika), ponieważ ten atrybut dla inputType nie jest rozpoznawany. Możesz więc ustawić to w kodzie za pomocą int const:
EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);
Dziękuję jasta00 za pomoc w znalezieniu odpowiedzi na to pytanie.
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);
}
Możesz po prostu użyć metody EditText setThreshold()
. Ustaw próg na powiedzmy 100, gdy nie chcesz wyświetlać prognoz. Jeśli chcesz ponownie aktywować wyświetlanie podpowiedzi, ustaw ją z powrotem na małą wartość int, taką jak 1 lub 2, w zależności od potrzeb.