я создаю список, который имеет два TextView и один пользовательский вид в качестве индикатора выбора, для загрузки данных я использую CursorAdapter и переопределяю bindView и newView. но проблема в сохранении индекса выбора.
когда я нажимаю на элемент списка, я сохраняю его позицию в поле зрения следующим образом
View v1=(View)view.findViewById(R.id.viewColor);
v1.setTag(position)
но внутри bindView я не получаю позицию, в которой я могу выполнить совпадение, выбрав позицию из тега представления следующим образом
Integer position = (Integer) v1.getTag();
но я не получаю возможности сравнивать именно так, как мы получаем в getView. я попробовал cur.getPosition() - это позиция записи в курсоре, которая не будет соответствовать v1.getTag().
я попытался переопределить getView следующим образом, но не получил точную позицию
@Override
public View getView(final int position, View convertView, ViewGroup parent){
this.position = position;
return super.getView(position, convertView, parent);
}
так как я могу получить позицию в bindView? мне нужно использовать getView или что? Я изучил множество тем, но не получил определенного ответа, когда дело доходит до bindView.
РЕДАКТИРОВАТЬ
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position,
long arg3) {
view.setTag(position);
// i save the position on list item click so that when adapter loads the
// the list i can match the position with the current one
}
