我有下一个适配器:
public class CityAdapter extends ArrayAdapter<String> {
public CityAdapter(Context context, int resource) {
super(context, resource, Cities.TITLES);
}
public int getCount() {
return Cities.ARRAY.length;
}
@SuppressLint("InflateParams")
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi;
vi = LayoutInflater.from(getContext());
v = vi.inflate(R.layout.city_list_row, null);
}
TextView title = (TextView) v.findViewById(R.id.cityTitle);
title.setText(Cities.ARRAY[position].getName());
if (position==4) {
title.setTextColor(Color.parseColor("#ff0000"));
}
return v;
}
}
请仔细看看这一行:
if (position==4)
我不知道怎么做,但该语句也适用于位置 0。
看起来确实不可能。怎么了?另外,如果我像这样更改代码:
if (position==4) {
title.setText("hey!!!");
title.setTextColor(Color.parseColor("#ff0000"));
}
我会得到这个:
最佳答案
为您的颜色设置添加一个 else case,如下所示
if (position==4) {
title.setTextColor(Color.parseColor("#ff0000"));
}
else {
title.setTextColor(Color.parseColor("#ffffff"));
}
关于java - 适配器确实有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31207307/