Android par programmation désactiver la saisie semi-automatique/autosuggest pour EditText dans l'émulateur

Ciblant Android 2.2

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

désactiver 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);

tous 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 périphérique (Samsung GT i5500).

y a-t-il une autre façon de programmatically de désactiver l'autocomplete/autosuggest pour un texte D'édition d'une manière que l'émulateur et certains appareils reconnaîtront et respecteront?

41
demandé sur Community 2011-06-08 19:42:35

11 réponses

Pour Vodafone 845 (2.1), huawei 8800 (2.2), de dispositifs, 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"

43
répondu bob 2011-09-05 22:01:02

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

android:inputType="text|textNoSuggestions"

si ni ceci, ni les approches ci-dessus ne fonctionne, alors ce est presque certainement un problème avec l'émulateur et l'autre dispositif, et vous devriez contacter les fabricants directement.

Voir aussi: android: inputType (notez que EditText est une sous-classe de TextView , ce qui explique pourquoi cet attribut fonctionne aussi pour EditTexts ).

23
répondu Phil 2013-02-27 16:22:35

j'ai essayé tout ce qui précède et aucun d'entre eux ne m'a vraiment aidé. J'ai cherché par disponible InputTypes et j'ai trouvé une solution, qui s'est avéré être TYPE_TEXT_FLAG_AUTO_COMPLETE :

mEditText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);

D'après sa description:

cela signifie généralement que la méthode d'entrée ne doit pas indiquer les candidats lui-même, mais peuvent s'attendre pour le Editeur de fournir ses propres les achèvements/candidats de InputMethodSession.displayCompletions ().

Je n'ai pas spécifié de completions set et en conséquence je suis ne pas obtenir tout auto-suggestions .

PS. Le drapeau InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD mentionné dans commend ci-dessus fait aussi ce tour, mais il désactive basculer la langue dans le clavier.

14
répondu theb1uro 2013-01-15 08:32:13

personnellement, ce code m'aide:

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

je veux désactiver les suggestions lorsque je mets du texte , donc je retire l'adaptateur et après avoir appelé setText , je le renvoie.

donc si vous voulez désactiver la suggestion il suffit d'utiliser:

autoCompleteTextView.setAdapter(null);
5
répondu itzhar 2017-07-31 07:34:37

vous pouvez utiliser la classe AutoCompleteTextView et régler l'adaptateur qui ne contient rien AutoCompleteTextView Classe De Référence

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[] {""};
 }
2
répondu Davide 2012-12-13 11:58:04

en utilisant android:inputType="textNoSuggestions|textVisiblePassword" pour Edittext corriger le problème.

2
répondu Mridul Shrivastava 2015-03-18 08:58:36

je me battais avec le même problème dans l'émulateur. Pendant les tests, j'ai réalisé que ce qui apparaissait n'était pas l'autocomplete normale, mais un aperçu de caractère asiatique spécial (probablement parce qu'il nécessite plusieurs clés pour générer un caractère asiatique). Donc j'ai résolu cela en mettant la langue à l'anglais. Je pense que ce que je voyais était l'option "Key Preview" listée sous le paramètre "Japanese IME" dans "Language & keyboard".

je suppose qu'il serait être assez difficile à désactiver ce dans une application individuelle sans plonger dans la manipulation du clavier et la prise en charge de la langue.

1
répondu Klox 2011-08-21 19:20:19

vous pouvez également utiliser la commande suivante pour désactiver la suggestion automatique sur n'importe quel texte d'édition.

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

ça a marché pour moi.

1
répondu Mridul Shrivastava 2014-07-02 09:56:52

vous pouvez simplement utiliser la méthode setThreshold() D'EditText. Définissez le seuil à disons 100 quand vous ne voulez pas montrer des prédictions. Si vous voulez réactiver montrant des prédictions, mis à dos une petite int comme 1 ou 2 selon vos besoins.

0
répondu kaolick 2013-02-19 17:09:54

'oninput' événement dans l'entrée, a couru la fonction suivante:

function RefreshAutoComplete(elm) {
elm.keyup();
elm.focus();
}

j'exécute l'auto complète manuellement, et il fonctionne

Merci à vous tous pour l'aide

-1
répondu Ravi_Parmar 2013-01-07 12:00:27

la réponse correcte est erronée. Pour désactiver auto suggérez d'ajouter la propriété suivante à votre fichier EditText XML

android:inputType="textFilter"
-3
répondu Animesh 2012-02-16 20:08:17