Skip to content Skip to sidebar Skip to footer

Oncheckedchanged Fired Multiple Times, Listview With Checkbox

I have a ListView with checkbox: Oncheckedchanged(..) is called when user check/uncheck item on listview OncheckedChanged(..) called again when user click the listitem via onItem

Solution 1:

Replace the onCheckChangeListener to onClickListener.

The checkChanged will be called twice as it will be called when you call setChecked() method and when you click on the checkbox.

Solution 2:

That's expected behavior:

  • onCheckedChanged(CompoundButton buttonView, boolean isChecked) is called for every item, whenever they're checked/unchecked. Android has decided to track all items status for you and calls you for each item every time it was changed. With the isChecked parameter you're able to differentiate what happened.

  • onItemClick() is called whenever one of the items where clicked - that is not necessarily the checkbox within the item, but somewhere. Usually the item is selected afterwards - again, not always.

  • If you need to know which item was actually selected from the list view, use OnItemSelectedListener.onItemSelected(). This is the one called to get the selection (whole item).

BTW: You dont need to prgram the behavior of a checkbox manually. The check/uncheck and drawing of the tick in the box is done by Android. You just need to get the checked status once you know which one was selected. So the onCheckedChanged implementation is not necessary at all as far as I can see.

Solution 3:

I have fixed this issue just by checking:

    mSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {
        if(buttonView.isPressed()){
            // do you operation
        });
        }
    });

It avoids multiple calling

Post a Comment for "Oncheckedchanged Fired Multiple Times, Listview With Checkbox"