可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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?
回答1:
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"
回答2:
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
).
回答3:
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.
回答4:
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);
回答5:
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[] {""};
}
回答6:
Using android:inputType="textNoSuggestions|textVisiblePassword"
for Edittext fix the problem.
回答7:
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.
回答8:
You can also use following for disabling auto suggestion on any edittext.
<EditText>
android:inputType="textNoSuggestions|textVisiblePassword"
</EditText>
This worked for me.
回答9:
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.
回答10:
'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
回答11:
The answer acceted as correct is faulty. To disable auto suggest add following property to your EditText XML
android:inputType="textFilter"