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);
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос