Если вы добавите в ListView либо фокусируемые, либо интерактивные представления, ваш OnItemClickListener не будет вызываться.
Флажок активируется по умолчанию, поэтому настройка OnItemClickListener в этом случае ничего не даст.
В этом случае вы можете реализовать собственный адаптер (просто расширить ArrayAdapter) и добавить OnClickListener для каждого представления, предоставляемого для ListView.
public class TestAdapter extends ArrayAdapter {
...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
v.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Do your logic here eg. if ((CheckBox)v).isChecked()...
}
});
return v;
}
}
Вы можете найти очень хороший учебник по этой теме здесь . Стоит прочитать всю главу, но ответ на ваш вопрос находится на стр. 112, Интерактивные строки.
Также посмотрите на этот вопрос переполнения стека.