Как работает система в 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"));
}
Другие вопросы по тегам