50 votes

Android désactive par programmation l'auto-complétion / autosuggest pour EditText dans l'émulateur

Ciblant Android 2.2

J'ai lu les réponses aux questions suivantes:

Éteignez autosuggest pour EditText?

Android: Multiligne et Pas de autosuggest dans EditText

J'ai essayé les variations suivantes sur les suggestions:

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);

L'ensemble de ces travaux sur la plupart des appareils que j'ai testé (Droid X, Droid 2, Thunderbolt, Incredible) mais ne fonctionne pas sur l'émulateur et au moins 1 appareil (Samsung GT-i5500).

Est-il un autre moyen de par programmation désactiver la saisie semi-automatique/autosuggest pour un EditText dans un moyen de l'émulateur et de certains dispositifs de reconnaître et de respecter?

49voto

bob Points 949

Pour les périphériques Vodafone 845 (2.1), huawei 8800 (2.2), textVisiblePassword semble empêcher la prédiction de mots.

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

ou

android: inputType = "textVisiblePassword"

25voto

Phil Points 11964

Dans la mise en page XML, ajouter l'attribut suivant à votre EditText:

android:inputType="text|textNoSuggestions"

Si ni le présent, ni les approches ci-dessus le travail, alors ce n'est presque certainement un problème avec l'émulateur, et de l'autre appareil, et vous devez contacter directement aux fabricants.

Voir aussi: android:inputType (à noter qu' EditText est une sous-classe de TextView, c'est pourquoi cet attribut fonctionne aussi pour d' EditTexts).

20voto

theb1uro Points 71

J'ai essayé tous les ci-dessus et aucun des ci-dessus m'a vraiment aidé. J'ai recherche par le biais de la disposition InputTypes et j'ai trouvé une solution, ce qui est arrivé à être TYPE_TEXT_FLAG_AUTO_COMPLETE:

mEditText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);

À partir de sa description:

Cela signifie généralement que la méthode d'entrée ne doit pas être visible les candidats lui-même, mais peut s'attendre pour l'éditeur de fournir à ses propres les achèvements/candidats de InputMethodSession.displayCompletions().

Je n'ai pas précisé de quelle achèvements ensemble et comme un résultat, je suis pas arriver tout de l'auto-suggestions.

PS. Drapeau InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD mentionné dans le féliciter au-dessus de cette affaire, mais il a également désactive le basculement de la langue du clavier.

2voto

Davide Points 745

Vous pouvez utiliser la classe AutoCompleteTextView et définir l'adaptateur qui ne contient rien. Référence de la classe AutoCompleteTextView

exemple

  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[] {""};
 }
 

1voto

Klox Points 649

Je me battais avec le même problème dans l'émulateur. En le testant, j'ai réalisé que ce qui apparaissait n'était pas normal de saisie semi-automatique, mais l'un de caractères Asiatiques aperçu (sans doute parce qu'elle exige plusieurs touches pour générer des caractères Asiatiques). Donc, j'ai résolu ce problème en définissant la langue anglaise. Je pense que ce que je voyais était la "Clé Preview" option figurent à la rubrique "IME" dans "Langue et clavier".

Je suppose qu'il serait assez difficile de désactiver cette fonction dans une App individuelles sans se plonger dans la gestion du clavier et de la langue.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X