Android Нажмите на список, пункт проверяет неправильный флажок
Я создал собственный ListView, расширив SimpleCursorAdapter. Результат - ИЗОБРАЖЕНИЕ + CheckedTextView (Текст + Флажок).
Когда я долго щелкаю по элементу, все работает нормально - я получаю правильный идентификатор и подробную информацию о выбранном элементе.
Проблема возникает, когда я пытаюсь пометить элемент как отмеченный, но он устанавливает неправильный флажок.
Например: У меня есть 9 пунктов в моем списке, отсортированные 1-9. если я нажимаю на listItem 1, флажок в строке 9 проверяется. если я нажимаю на пункт 4, флажок в строке 6 проверяется, и если я нажимаю на среднюю строку, он проверяется.
Я явно что-то здесь упускаю :) Помните, когда я долго щелкаю по строке (открывается contextMenu), все отлично работает.
Это слушатель:
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
CheckedTextView markedItem = (CheckedTextView) view.findViewById(R.id.btitle);
if (!markedItem.isChecked()) {
markedItem.setChecked(true);
} else {
markedItem.setChecked(false);
}
}
});
Цени любую помощь!
Дайте мне знать, если вы хотите, чтобы я опубликовал больше кода.
Спасибо!
Кстати, если я нажму более чем на одну ... партия продолжается ... нет очевидного порядка ...
РЕДАКТИРОВАТЬ: код адаптера
public class ImageCursorAdapter extends SimpleCursorAdapter {
private Cursor c;
private Context context;
private String url;
private TextView bUrl;
public ImageCursorAdapter(Context context, int layout, Cursor c,
String[] from, int[] to) {
super(context, layout, c, from, to);
this.c = c;
this.context = context;
}
public View getView(int pos, View inView, ViewGroup parent) {
View v = inView;
if (v == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.image_list, null);
}
this.c.moveToPosition(pos);
final TextView bTitle = (TextView) v.findViewById(R.id.btitle);
String bookmark = this.c.getString(this.c.getColumnIndex(Browser.BookmarkColumns.TITLE));
byte[] favicon = this.c.getBlob(this.c.getColumnIndex(Browser.BookmarkColumns.FAVICON));
if (favicon != null) {
ImageView iv = (ImageView) v.findViewById(R.id.bimage);
iv.setImageBitmap(BitmapFactory.decodeByteArray(favicon, 0, favicon.length));
}
bTitle.setText(bookmark);
return (v);
}
}