2015-08-25 2 views
1

У меня есть SimpleAdapter, который я использую для отображения списка строк. Я хочу, чтобы 15-ая позиция на этом простом адаптере отличалась от формата, но когда я просматриваю список вокруг, он теряет позицию и форматирует изменения. Есть ли решение для этого? Я пробовал обманывать с помощью convertView, но, похоже, не мог получить правильный формат. Мой код ниже. Благодаря!SimpleAdapter не сохраняет позицию при прокрутке

 SimpleAdapter adapter = new SimpleAdapter(this, data, android.R.layout.simple_list_item_2, new String[] {"title", "publisher"}, new int[] {android.R.id.text1, android.R.id.text2}){ 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View view = super.getView(position, convertView, parent); 

      if (position == 15) { 
       TextView text1 = (TextView) view.findViewById(android.R.id.text1); 
       text1.setTextColor(Color.WHITE); 
       TextView text2 = (TextView) view.findViewById(android.R.id.text2); 
       text2.setTextColor(Color.WHITE); 
       view.setBackgroundColor(getResources().getColor(R.color.teal_dark)); 
      } 

      return view; 
     } 


    }; 

ответ

0

Попробуйте добавить предложение еще сбросить формат Формат по умолчанию

if (position == 15) { 
    TextView text1 = (TextView) view.findViewById(android.R.id.text1); 
    text1.setTextColor(Color.WHITE); 
    TextView text2 = (TextView) view.findViewById(android.R.id.text2); 
    text2.setTextColor(Color.WHITE); 
    view.setBackgroundColor(getResources().getColor(R.color.teal_dark)); 
} else { 
    TextView text1 = (TextView) view.findViewById(android.R.id.text1); 
    text1.setTextColor(Color.BLACK); 
    TextView text2 = (TextView) view.findViewById(android.R.id.text2); 
    text2.setTextColor(Color.BLACK); 
    view.setBackgroundColor(getResources().getColor(R.color.teal_light)); 
} 
+0

Это сработало! Спасибо. Я просто не знаю, почему ... если раньше была достигнута «позиция == 15», не будет ли она снова достигнута? – apoc52

+1

На самом деле, андроид будет перерабатывать представление для каждой вашей строки в списке. Когда вы первый раз достигнете строки 15, затем прокрутите страницу до другой позиции, андроид будет повторно использовать строку 15 для другой строки, поэтому форматирование, похоже, переместится в другую строку –

Смежные вопросы