Czy istnieje sposób na programowe wyłączenie listy autosugestów, która pojawia się podczas wpisywania tekstu w EditText?
android
android-edittext
nikib3ro
źródło
źródło
android:inputType="textPersonName"
sugerowanym tekstem, ale nadal wyświetla wiersz sugestii (z ikoną mikrofonu).też lepiej to przeczytaj
źródło
działa jak marzenie
źródło
.
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:
Jeśli masz już ustawione flagi, to:
źródło
Najbardziej niezawodnym podejściem do pozbycia się autouzupełniania, jakie znalazłem, jest użycie
w kontrolce EditText. Jak podał Charlie w innej odpowiedzi na tej stronie,
jest wersją XML tej flagi.
Możesz połączyć tę flagę z
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.
źródło
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"
a w przypadku widoku tekstowego autouzupełniania, takiego jak ten, użyj tego pola, aby wyłączyć automatyczne sugestie android: importantForAutofill = "no" :
źródło
Możesz rozwiązać ten problem, używając tego:
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
źródło
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ł.
Tekst textCapSentences był z innych powodów. Ale ten typ inputType zachował pisanie przeciągnięciem i wyłączył pasek narzędzi sugestii.
źródło
Dostawałem to na telefonach Samsung z systemem 4.4.4. To rozwiązało mój problem
źródło
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:
Dziękuję jasta00 za pomoc w znalezieniu odpowiedzi na to pytanie.
źródło
źródło
To ci pomoże.
źródło
źródło
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.źródło