Android programmatically disable autocomplete/autosuggest for EditText in emulator

老子叫甜甜 提交于 2019-11-27 19:58:51

For Vodafone 845 (2.1), huawei 8800 (2.2) devices, textVisiblePassword seems to prevent word prediction.

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

or

android:inputType="textVisiblePassword"

Phil

In the layout XML, add the following attribute to your EditText:

android:inputType="text|textNoSuggestions"

If neither this, nor the above approaches work, then this is almost certainly a problem with the emulator and the other device, and you should contact the manufacturers directly.

See also: android:inputType (note that EditText is a subclass of TextView, which is why this attribute also works for EditTexts).

I've tried all the above and none of above really helped me. I've search through available InputTypes and I've came up with a solution, which happened to be TYPE_TEXT_FLAG_AUTO_COMPLETE:

mEditText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);

From its description:

This generally means that the input method should not be showing candidates itself, but can expect for the editor to supply its own completions/candidates from InputMethodSession.displayCompletions().

I haven't specified any completions set and as a result I'm not getting any auto-suggestions.

PS. Flag InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD mentioned in commend above does this trick as well, but it also disables toggling the language in the keyboard.

itzhar

personally, this code help me:

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

I want to disable suggestions when I set text so I remove the adapter and after I call setText, I return it.

so if you want to disable suggestion just use:

autoCompleteTextView.setAdapter(null);
Davide

You can use the class AutoCompleteTextView and set the adapter that contains nothing AutoCompleteTextView Class Reference

example

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

Using android:inputType="textNoSuggestions|textVisiblePassword" for Edittext fix the problem.

I was fighting with the same problem in the emulator. While testing, I realized that what was appearing wasn't the normal autocomplete, but a special Asian character preview (presumably because it requires multiple keys to generate one Asian character). So I solved this by setting the language to English. I think what I was seeing was the "Key Preview" option listed under the "Japanese IME" setting in "Language & keyboard".

I'm guessing that it would be pretty hard to disable this within an individual App without delving into the keyboard handling and language support.

You could simply use the EditText's setThreshold() method. Set the threshold to let's say 100 when you don't want to show predictions. If you want to re-activate showing predictions, set it back to a small int like 1 or 2 depending on your needs.

You can also use following for disabling auto suggestion on any edittext.

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

This worked for me.

'oninput' event in the input, ran the following function:

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

I run the auto complete manually, and it works

Thank you all for the help

The answer acceted as correct is faulty. To disable auto suggest add following property to your EditText XML

android:inputType="textFilter"
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!