Я использую listview с адаптером курсора. Это listview имеет изображение в каждом элементе, когда я нажимаю на это изображение. Я меняю изображение изображения, которое меняется правильно, но когда i прокрутите список изменений в моем представлении в своем представлении orignal. . Примечание: Я использую адаптер курсора (я знаю о рециркуляции списке следует, и я знаю, чтобы контролировать изменение значения в простой адаптер (модель, основанная)) Вот мой курсор адаптер:Значение списка ListView изменяется при прокрутке в пользовательском адаптере курсора
@Override
public void bindView(View view, final Context context, Cursor cursor) {
spotsImage = (SimpleDraweeView) view.findViewById(R.id.spotsImage);
ivFavourite = (ImageView) view.findViewById(R.id.favouriteButton);
ivFavourite.setTag(cursor.getString(cursor.getColumnIndex(Constants.PEEP_ID))+"tag"+cursor.getInt(cursor.getColumnIndex(Constants.PEEP_STATUS)));
spotsTitle = (TextView) view.findViewById(R.id.titleTextView);
followerscount = (TextView) view.findViewById(R.id.distanceTextView);
spotsTitle.setText(cursor.getString(cursor.getColumnIndex(Constants.PEEP_NAME)));
Uri uri = Uri.parse(cursor.getString(cursor.getColumnIndex(Constants.PEEP_PROFILE)));
spotsImage.setImageURI(uri);
count = cursor.getInt(cursor.getColumnIndex(Constants.PEEP_FOLLOWER_COUNT));
if (count > 1){
followerscount.setVisibility(View.VISIBLE);
followerscount.setText(count+" followers");
}
else if (count == 1){
followerscount.setVisibility(View.VISIBLE);
followerscount.setText(count+" follower");
}
else {
followerscount.setVisibility(View.INVISIBLE);
}
if (cursor.getInt(cursor.getColumnIndex(Constants.PEEP_STATUS)) == 1) {
ivFavourite
.setImageResource(R.drawable.favourites_tapped);
} else {
ivFavourite.setImageResource(R.drawable.favourites);
}
ivFavourite.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
String [] Tags = ((String) v.getTag()).split("tag");
if (Tags[1].equals("1")) {
((ImageView) v).setImageResource(R.drawable.favourites);
}
else {
((ImageView) v).setImageResource(R.drawable.favourites_tapped);
}
}
});
}
Возможный дубликат [Как механизм рециркуляции ListView работает] (http://stackoverflow.com/questions/11945563/how-listviews-recycling-mechanism-works) – 2Dee
благодарит за answer.I знаю о переработке списков, и я знаю, как контролировать изменение стоимости в простом адаптере (на основе модели), но я сталкиваюсь с проблемами с адаптером курсора. –
Я думаю, проблема заключается в том, что, поскольку свитки ListView bindView вызывается снова, и когда он вызывается, это похоже на то, что он еще не был нажат, поэтому изображение возвращается к умолчанию. Вам нужно найти способ отметить этот элемент, чтобы узнать, какое изображение использовать. – AdamMc331