0

在我的项目中,我有一个自动完成编辑文本,其中包含可供选择的值列表。如果用户输入的内容不在该列表中,则应显示错误。到目前为止这工作正常,问题是当用户(正确)从列表中选择一个项目时也会显示错误。因此,当正确选择 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);
    }
} 
4

1 回答 1

0

你需要重构你的for循环。

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

一个潜在的解决方案是这样的:

if (Arrays.asList(countries).contains(ServiceDatabase.citySelected)) {
    // Start SearchService...
} else {
    // call setError on the TextView
}
于 2013-11-05T22:49:55.777 回答