I have a Simple Cursor Adapter which works fine and displays all the data. My listener changes the color on click:
listViewM.setOnItemClickListener(new AdapterView.OnItemClickListener() {
          @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    boolean exists = false;
                    TextView item = (TextView) view.findViewById(R.id.r_lv_name);
                    String selectedAnswer = item.getText().toString();
                    MultiSelection multiSelection = new MultiSelection((int) id, selectedAnswer);
                    for (MultiSelection mm : mMultiSelectionsArray) {
                        if (id == mm.getId()) {
                            mMultiSelectionsArray.remove(mm);
                            exists = true;
                            break;
                        } else {
                            exists = false;
                        }
                    }
                    if (!exists) {
                        mMultiSelectionsArray.add(multiSelection);
                        item.setTextColor(Color.parseColor("#2EFE2E"));
                    } else {
                        mMultiSelectionsArray.remove(multiSelection);
                        item.setTextColor(Color.parseColor("#000000"));
                    }
                }
            });
Now on scroll adapter is recycling views and marking new items as selected (by adding the color). I guess I need to keep status somehow and then apply it on view creation but after 3 days of looking I give up. Can anyone help please?
                        
Try to use custom adapter, something like: