Как работает система в getView в Android?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = layoutInflater.inflate(R.layout.statistics_adapter, parent, false);
}
textViewLeft= (TextView) view.findViewById(R.id.textView);
textViewRight= (TextView) view.findViewById(R.id.textView2);
imageView= (ImageView) view.findViewById(R.id.imageView);
textViewLeft.setText(title[position]);
textViewRight.setText(str[position]);
imageView.setVisibility(View.GONE);
if(position==(0)||position==(1)||position==(2)||position==(5)){
imageView.setVisibility(View.VISIBLE);
if (textViewRight.getText().equals("ok")) imageView.setImageResource(R.drawable.ok);
if (textViewRight.getText().equals("error")) imageView.setImageResource(R.drawable.error);
textViewRight.setText("");
}
if (position==8){
textViewRight.setTextColor(Color.parseColor("#ff0000"));
}
if (position>10){
textViewLeft.setText("");
}
return view;
}
В моем списке при первой прокрутке текст в позиции 8 меняется на красный. Если вы прокрутите listView 5 раз вверх и вниз, то мой текст изменит цвет на #ff0000. Что я не так делаю? Кажется, все в порядке
1 ответ
Решение
Я думаю, что вы хотите установить цвет на черный, если он не находится в положении 8.
if (position==8){
textViewRight.setTextColor(Color.parseColor("#ff0000"));
}
else {
textViewRight.setTextColor(Color.parseColor("#ffffff"));
}