Targeting Android 2.2
I have read the answers to the following questions:
Turn off autosuggest for EditText?
Android: Multiline & No autosuggest in EditText
I have tried the following variations on the 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);
All of these work on most devices I've been testing (Droid X, Droid 2, Thunderbolt, Incredible) but don't work on the emulator and at least 1 device (Samsung GT i5500).
Is there any other way to programmatically disable the autocomplete/autosuggest for an EditText in a way the emulator and certain devices will recognize and respect?
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"
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.
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);
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[] {""};
}
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"
来源:https://stackoverflow.com/questions/6281514/android-programmatically-disable-autocomplete-autosuggest-for-edittext-in-emulat