我有这段代码(已更新为解决方案)。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
final Direction d = directions.get(position);
if (d != null) {
TextView direction = (TextView) row.getTag(R.id.directionTextView);
TextView departure1 = (TextView) row.getTag(R.id.departure1);
TextView departure2 = (TextView) row.getTag(R.id.departure2);
TextView departure3 = (TextView) row.getTag(R.id.departure3);
direction.setText(d.getName());
if (d.getTimeStamps().size() == 0) {
departure1.setText(R.string.nodepartures);
departure1.setTextColor(R.color.grey);
} else {
for (int i = 0; i < d.getTimeStamps().size(); i++) {
switch (i) {
case 0:
departure1.setText(d.getTimeStamps().get(i));
break;
case 1:
departure2.setText(d.getTimeStamps().get(i));
break;
case 2:
departure3.setText(d.getTimeStamps().get(i));
break;
default:
break;
}
}
}
}
return row;
}
}
我遇到的问题是其中一个TextView在不应该变灰时会变灰。我尝试通过将文本始终设置回黑色来修复它,但这样会使每一个TextView都变灰。直到我尝试了以下方法:
setTextColor(context.getResources().getColor(R.color.black));
不仅仅是
setTextColor(R.color.black);
不知道为什么将文本设置为灰色时后者起作用,但就是这样。我想我可能有点儿迟钝。 :)
for(i ..)
中使用了switch(i)
语句。 - quantumSoupdepartures[i].setText()
。 - Jake