Android Autocomplete Edittext setError显示未调用时

时间:2013-11-05 22:38:20

标签: android autocomplete android-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);
    }
} 

1 个答案:

答案 0 :(得分:0)

您需要重构for循环。

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

可能的解决方案如下:

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