У меня есть 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;
}
};
Это сработало! Спасибо. Я просто не знаю, почему ... если раньше была достигнута «позиция == 15», не будет ли она снова достигнута? – apoc52
На самом деле, андроид будет перерабатывать представление для каждой вашей строки в списке. Когда вы первый раз достигнете строки 15, затем прокрутите страницу до другой позиции, андроид будет повторно использовать строку 15 для другой строки, поэтому форматирование, похоже, переместится в другую строку –