0

私のプロジェクトでは、選択する値のリストを含む Autocomplete 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);
    }
} 
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 に答える