@kakatak

Почему некорректно отрабатывает setTextColor в getView при пролистывании ListAdapter?

Есть список в котором нужно красить текст в определенный цвет в зависимости от условий. Набросал такой код, который изначально выводит все правильно и красит все в gray если TextView R.id.date = "2015-01-16 00:00:00". Однако если пролистать список вниз, чтобы верхние элементы списка ушли за экран, а затем вверх то правило применяется ко всем view(которые возвращаются сверху) в не зависимости от условия, и все красится в Color.GRAY.
class MySimpleAdapter extends SimpleAdapter {
    	
        public MySimpleAdapter(Context context,
            List<? extends Map<String, ?>> data, int resource,
            String[] from, int[] to) {
          super(context, data, resource, from, to);
        }
        
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
          View view = super.getView(position, convertView, parent);
          TextView subElement = (TextView) view.findViewById(R.id.date);
          //subElement.setVisibility(View.GONE);
          String date = subElement.getText().toString();
          Log.d(date, date);
          if(date.equals("2015-01-16 00:00:00")){
              TextView name = (TextView) view.findViewById(R.id.name);
              TextView address = (TextView) view.findViewById(R.id.address);
               name.setTextColor(Color.GRAY);
               address.setTextColor(Color.GRAY);
        	  
          }
                   
          return view;
        }
        
      }
  • Вопрос задан
  • 2540 просмотров
Решения вопроса 1
@IceJOKER
Web/Android developer
Попробуйте дополнить условие с ELSE , то есть вынесите name/address за борт и в условии - если так, то GRAY, иначе ДЕФОЛТ
мне это помогло.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы