Frage

Gibt es eine Möglichkeit, diese autosuggeste Liste programmgesteuert auszuschalten, die beim Eingeben von EditText auftaucht?

War es hilfreich?

Lösung

Ich hatte die gleiche Frage, aber ich wollte diese Option immer noch in meiner XML -Datei festlegen, also habe ich ein bisschen mehr recherchiert, bis ich sie selbst herausgefunden habe.

Fügen Sie diese Zeile in Ihren EditText hinzu.

android:inputType="textFilter" 

Hier ist ein Tipp. Verwenden Sie diese Zeile, wenn Sie die Schlüssel "Eingeben" verwenden möchten.

android:inputType="textFilter|textMultiLine"

Andere Tipps

android:inputType="textNoSuggestions"  

Außerdem sollten Sie besser lesen Dies

android:inputType="textVisiblePassword" 

klappt wunderbar

  1. Programmatisch

    edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
    
  2. Xml

    android:inputType="textNoSuggestions|textVisiblePassword"
    

Der zuverlässigste Ansatz, den ich für die Beseitigung von Autocomplete gefunden habe, ist die Verwendung

InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD 

auf Ihrem EditText -Steuerelement. Wie Charlie in einer anderen Antwort auf dieser Seite berichtet hat,

android:inputType="textVisiblePassword"

ist die XML -Version dieser Flagge.

Sie können diese Flagge mit kombinieren

InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS

Ich hatte InputType.type_text_flag_no_sugestions ohne InputType.type_text_variation_visible_password verwendet, das für die meisten Telefone funktioniert hat, aber dann bin ich auf ein Samsung -Telefon gestoßen, für das ich immer noch automatisch wurde.

Android deaktivieren programmgesteuert automatische Vervollständigung/autosuggest für editText im Emulator

die vorschlug, dass inputType.type_text_variation_visible_password.

Ich habe dies ausprobiert (zusammen mit InputType.type_text_flag_no_sugestions) und es hat funktioniert. Sie sehen haben Damit es für ein Kennwortfeld deaktiviert werden kann. Wenn Sie nicht den Atem anhalten, ist dies der beste Weg, um das zu bekommen, was wir von solchen Telefonen wollen.

Auf einigen meiner Geräte wurde die Schrift durch diese Flagge leicht verändert - vor allem, um eine Null (0) von einem OH (O) deutlicher zu unterscheiden, was offensichtlich für die Anzeige eines Passworts wichtig wäre. Aber zumindest funktionierte es und die neue Schrift war nicht unattraktiv.

Obwohl der Beitrag, auf dem ich diesen Vorschlag festgestellt habe, alt war, war das Telefon, an dem ich getestet wurde, sehr neu - ein Samsung Galaxy Note II (SPH -L900) -Treiber Android 4.1.2 aus Sprint. Die ausgewählte Tastatur war "Samsung -Tastatur", und anscheinend war dies der Standard für dieses Telefon, als der Kunde es vom Sprint erhielt. Daher hat dieses Problem zumindest einige der wichtigsten Samsung -Linien im Laufe der Jahre angehalten.

Für diejenigen unter Ihnen, die wie ich kein Samsung -Testgerät haben, können dies wichtige Informationen sein.

Für die Android -Version 8.0 oder darüber funktioniert dieser Code nicht und für die automatische Vervollständigung TextView funktioniert dieser Code auch nicht Deaktivieren Sie die automatischen Vorschläge in 8.0 oder über Android Vesrion. Verwenden Sie diese Eigenschaft von EditText Android: wichtigForAutofill = "Nein"

                   <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" />

Und für die automatische Vervollständigung Textansicht wie dieses verwenden dieses Feld, um den automatischen Vorschlag zu deaktivieren Android: wichtigForAutofill = "Nein" :

      <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" />

Da dies immer noch ein Problem ist, werde ich diese Antwort veröffentlichen. Android: InputType = "TextvisiblePassword" funktioniert, ist aber unerwünscht, zunächst, weil es eine falsche Darstellung der Eingabe ist, und zweitens, weil es die Gestentypisierung deaktiviert!

Stattdessen musste ich beide Flaggen Texnosugestions und Textfilter verwenden. Entweder hat einer allein nicht funktioniert.

android:inputType="textCapSentences|textFilter|textNoSuggestions"

Die Textkapsen bestanden aus anderen Gründen. Dieser InputType hielt die Swipe -Tipps und deaktiviert die Vorschlags -Symbolleiste.

Ich habe dieses Ding auf Samsung -Telefonen 4.4.4 gelaufen. Dies löste mein Problem

android:inputType="text|textVisiblePassword|textNoSuggestions"

OK, das Problem war - in Sonnenfinsternis erhalten Sie keinen Vorschlag für Flaggen mit dem Namen: Textnosuggestion

Und Sie können es nicht in main.xml (wo Sie eine Benutzeroberfläche entwerfen) festlegen, da dieses Attribut für InputType nicht erkannt wird. Sie können es also mit int const in Code einstellen:

EditText txtTypeIt = (EditText) this.findViewById(R.id.txtTypeIt);
txtTypeIt.setInputType(524288);

Und danke Jasta00 Für die Hilfsmittel für diesen Fall.

EditText emailTxt=(EditText)findViewById(R.id.email);
emailTxt.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

Das wird dir helfen.

android:inputType="text|textNoSuggestions"

Sie können einfach die EditText - setThreshold() Methode. Stellen Sie den Schwellenwert so ein, dass Sie 100 sagen, wenn Sie keine Vorhersagen anzeigen möchten. Wenn Sie die Anzeigen von Vorhersagen wieder aktivieren möchten, stellen Sie sie je nach Ihren Anforderungen auf ein kleines int wie 1 oder 2 ein.

    // 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);
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top