it-swarm.com.de

Android deaktiviert automatisch die automatische Vervollständigung/Autosuggest für EditText im Emulator

Targeting Android 2.2

Ich habe die Antworten auf folgende Fragen gelesen:

Autosuggest für EditText deaktivieren?

Android: Multiline & Kein Autosuggest in EditText

Ich habe die folgenden Varianten der Vorschläge ausprobiert:

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_FILTER);

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_VARIATION_FILTER);

setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

Alle diese Funktionen funktionieren auf den meisten Geräten, die ich getestet habe (Droid X, Droid 2, Thunderbolt, Incredible), funktionieren jedoch nicht mit dem Emulator und mindestens einem Gerät (Samsung GT i5500).

Gibt es einen anderen Weg zu programmatisch Autocomplete/Autosuggest für einen EditText so deaktivieren, dass der Emulator und bestimmte Geräte dies erkennen und respektieren?

43
gyoda

Bei Geräten von Vodafone 845 (2.1), huawei 8800 (2.2) scheint textVisiblePassword die Wortvorhersage zu verhindern.

    vendorId.setInputType(Android.text.InputType.TYPE_CLASS_TEXT | Android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

oder 

Android: inputType = "textVisiblePassword"

44
bob

Fügen Sie im Layout-XML Ihrer EditText das folgende Attribut hinzu:

Android:inputType="text|textNoSuggestions"

Wenn weder diese noch die obigen Ansätze funktionieren, ist dies höchstwahrscheinlich ein Problem mit dem Emulator und dem anderen Gerät, und Sie sollten sich direkt an den Hersteller wenden.

Siehe auch: Android: inputType (Beachten Sie, dass EditText eine Unterklasse von TextView ist, weshalb dieses Attribut auch für EditTexts funktioniert).

23
Phil

Ich habe alles oben versucht und keiner von oben hat mir wirklich geholfen. Ich habe die verfügbaren Eingabetypen durchsucht und eine Lösung gefunden, die zufällig TYPE_TEXT_FLAG_AUTO_COMPLETE lautete:

mEditText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);

Aus seiner Beschreibung:

Dies bedeutet im Allgemeinen, dass die Eingabemethode keine Kandidaten selbst anzeigen sollte, sondern dass der Editor eigene Vervollständigungen/Kandidaten von InputMethodSession.displayCompletions () bereitstellen muss.

Ich habe keine Vervollständigungen festgelegt und als Ergebnis habe ich keineautomatische Vorschläge.

PS. Das oben in commend erwähnte Flag InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD macht diesen Trick ebenso, aber es deaktiviert ​​das Umschalten der Sprache auf der Tastatur.

15
theb1uro

persönlich hilft mir dieser code:

autoCompleteTextView.setAdapter(null);
autoCompleteTextView.setText(address);
autoCompleteTextView.setAdapter(adapter);

Ich möchte die Vorschläge deaktivieren, wenn ich Text setze, so dass ich den Adapter entferne und nachdem ich setText aufgerufen habe, ich ihn zurückschicke.

wenn Sie den Vorschlag deaktivieren möchten, verwenden Sie einfach:

autoCompleteTextView.setAdapter(null);
5
itzhar

Verwenden Sie Android:inputType="textNoSuggestions|textVisiblePassword" für Edittext, um das Problem zu beheben.

2

Sie können die Klasse AutoCompleteTextView verwenden und den Adapter festlegen, der nichts enthält AutoCompleteTextView-Klassenreferenz

beispiel

 public class CountriesActivity extends Activity {
   protected void onCreate(Bundle icicle) {
     super.onCreate(icicle);
     setContentView(R.layout.countries);

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
             Android.R.layout.simple_dropdown_item_1line, COUNTRIES);
     AutoCompleteTextView textView = (AutoCompleteTextView)
             findViewById(R.id.countries_list);
     textView.setAdapter(adapter);
   }

   private static final String[] COUNTRIES = new String[] {""};
 }
2
Davide

Ich habe mit dem gleichen Problem im Emulator gekämpft. Während des Testens wurde mir klar, dass das, was erschien, nicht die normale Autovervollständigung war, sondern eine spezielle asiatische Zeichenvorschau (vermutlich, weil mehrere Schlüssel erforderlich sind, um einen asiatischen Zeichen zu erzeugen). Also habe ich das gelöst, indem ich die Sprache auf Englisch eingestellt habe. Ich glaube, ich habe die "Key Preview" -Option gesehen, die unter "Japanese IME" unter "Sprache & Tastatur" aufgeführt ist.

Ich vermute, dass es ziemlich schwierig sein würde, dies in einer einzelnen App zu deaktivieren, ohne auf die Tastaturbedienung und die Sprachunterstützung eingehen zu müssen.

1
Klox

Sie können Folgendes zum Deaktivieren des automatischen Vorschlags für jeden beliebigen Text verwenden.

<EditText>
Android:inputType="textNoSuggestions|textVisiblePassword"
</EditText>

Das hat bei mir funktioniert.

1

Sie können einfach die setThreshold()-Methode von EditText verwenden. Stellen Sie den Schwellenwert auf 100 ein, wenn Sie keine Vorhersagen anzeigen möchten. Wenn Sie die Vorhersagen erneut aktivieren möchten, setzen Sie sie je nach Bedarf auf einen kleinen Wert wie 1 oder 2 zurück.

0
kaolick