Исходя из того, что вы описываете, мы можем дать только подсказки в лучшем случае.
- Вы уверены, что перекомпилировали весь свой код?Я видел, что отладка дает странные результаты, потому что часть кода не была синхронизирована с отладкой байт-кода.
- Это система, основанная на событиях?Может ли быть так, что ваш код вызывается дважды, один раз с пустым списком, за которым сразу следует список с 1 записью после добавления этой записи в список?
В качестве улучшения кода я бы сделал следующее длярефакторинг switch
(предполагается, что тип управления Text
, который, вероятно, неверен, но легко исправим):
if (d.getTimeStamps().isEmpty()) {
departure1.setText(R.string.nodepartures);
departure1.setTextColor(R.color.grey);
} else {
Text[] fields = new Text[] { departure1, departure2, departure3 };
for (int i = 0; i < fields.length && i < d.getTimeStamps().size(); i++) {
fields[i].setText(d.getTimeStamps().get(i));
fields[i].setTextColor(R.color.black);
}
}
обновление
Видя, чтоне устанавливайте цвет для значений отправления, я думаю, вы предполагаете, что строки создаются заново при запуске этого кода.Если это предположение неверно, ваша ситуация может заключаться в том, что линия, ранее содержавшая строку «без отправления», теперь повторно используется для линии отправления, следовательно, наследуя серый цвет.