Android Autocomplete Edittext setError在未调用时显示

Android Autocomplete Edittext setError在未调用时显示,android,autocomplete,android-edittext,Android,Autocomplete,Android Edittext,在我的项目中,我有一个自动完成的Edittext,其中有一个可供选择的值列表。 如果用户输入的内容不在该列表中,则会显示错误。到目前为止,这一切都很好,问题是当用户(正确地)从列表中选择项目时,也会显示错误。因此,当正确选择时,if和else语句都将执行 有什么解决办法吗 for(int i = 0; i < countries.length; i ++) { if(citySelected.equals(countries[i])) { ServiceDataba

在我的项目中,我有一个自动完成的Edittext,其中有一个可供选择的值列表。 如果用户输入的内容不在该列表中,则会显示错误。到目前为止,这一切都很好,问题是当用户(正确地)从列表中选择项目时,也会显示错误。因此,当正确选择时,if和else语句都将执行

有什么解决办法吗

for(int i = 0; i < countries.length; i ++) {
    if(citySelected.equals(countries[i])) {
        ServiceDatabase.getCity = citySelected;

        Intent intent = new Intent(SearchService.this, ServiceActivity.class);
        startActivity(intent);
    } else {
        int ecolor = Color.BLACK; // whatever color you want
        String estring = "Bitte wähle eine Stadt aus der Liste aus";
        ForegroundColorSpan fgcspan = new ForegroundColorSpan(ecolor);
        SpannableStringBuilder ssbuilder = new SpannableStringBuilder(estring);
        ssbuilder.setSpan(fgcspan, 0, estring.length(), 0);

        autoCompleteTextViewCity.setError(ssbuilder);
    }
} 
for(int i=0;i
您需要为循环重构

目前,它正在针对每个城市检查输入,如果与其中任何一个城市不匹配,则调用
setError

可能的解决方案如下:

if (Arrays.asList(countries).contains(ServiceDatabase.citySelected)) {
    // Start SearchService...
} else {
    // call setError on the TextView
}