0

Following is the code where i have set the adapter for list

  ListView drawer;

 ArrayAdapter<String> adapter=new ArrayAdapter<String>(getBaseContext(),             R.layout.drawer_item, list);
  drawer.setAdapter(adapter);
 // drawer.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

  drawer.setOnItemClickListener(listItemClickListener);

I have added drawer.setItemChecked(pos,true); in onItemClickListener. But its not working.

pavel
  • 26,538
  • 10
  • 45
  • 61
quest
  • 447
  • 2
  • 7
  • 20
  • check [this one](http://stackoverflow.com/a/16990047/2811956) and [this](http://stackoverflow.com/a/8369927/2811956) and [this also](http://stackoverflow.com/a/5303958/2811956) it may help you – W I Z A R D Jul 17 '14 at 10:37
  • I have tried these already but still it didn't work for me. – quest Jul 17 '14 at 10:46

3 Answers3

2
 drawer.setChoiceMode(ListView.CHOICE_MODE_SINGLE);  

do this after you are doing findviewbyid for your listview and when your checkbox is clicked in setonclicklistner and you can also use checkedchangelistener inside it do this

   listOfSavedItems.setItemChecked(i, ((CheckBox) v).isChecked());

and you can use SparseBooleanArray to see wheather it is set or not like

  SparseBooleanArray sbA=listview.getCheckedItemPositions();

and use setTag and getTag for getting the positions of all checkbox and according to position it will check or uncheck the checkboxes

    for (int i = 0; i <=positionsSparseArray.size(); i++) {
        int pos = (int) viewHolder.checkBox.getTag();
        if (i == pos) {
            viewHolder.checkBox.setChecked(positionsSparseArray.get(i));

        }
    }
Eiko
  • 25,601
  • 15
  • 56
  • 71
0

Try to set all items inside your list view to non focusable.

drawer.setItemsCanFocus(false);

Also, make sure that for items inside list item set focusable false

android:focusable="false"      
android:focusableInTouchMode="false"
Shraddha Shravagi
  • 1,096
  • 1
  • 9
  • 22
0

I used customized adapter having checkbox and name as seperate entities which were on tabitems i used OnCheckedChangeListener, its a lengthy process but worked for me.

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    final ViewHolder viewHolder;
    if (convertView == null) {
        viewHolder = new ViewHolder();
        LayoutInflater inflator = reportViewContext.getLayoutInflater();
        convertView = inflator.inflate(R.layout.tabitems, null);            
        viewHolder.name= (TextView) convertView
                .findViewById(R.id.name);
        viewHolder.address= (TextView) convertView
                .findViewById(R.id.adress);
        viewHolder.checkbox = (CheckBox) convertView
                .findViewById(R.id.checkbox);
        viewHolder.checkbox
                .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView,
                            boolean isChecked) {

                        UserModel element = (UserModel) viewHolder.checkbox
                                .getTag();
                        element.setChecked(buttonView.isChecked());
                        UserModel model= data.get(position);
                        model.setChecked(buttonView.isChecked());

                    }
                });
            viewHolder.checkbox.setTag(data.get(position));
        convertView.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder)convertView.getTag();
        ((ViewHolder) convertView.getTag()).checkbox.setTag(data.get(position));
    }
      //remaining data operation tasks....

cheers!..

priyanka_rao
  • 465
  • 1
  • 4
  • 20