Search code examples
androidonclickandroid-radiogroup

Android RadioGroup OnCheckedChangeListener not working


I have a simple radiogroup with the list of radio buttons. For some reason, I don't see change listener is getting triggered when selecting radio buttons in that group. In debug mode, I can see the listener is getting set and in UI the radio buttons are correctly getting selected.

RadioGroup.OnCheckedChangeListener listener1, listener2;
RadioGroup rg1;
public void radioBtnListener()
{
    rg1 = (RadioGroup) view.findViewById(R.id.answerChoices);
    rg1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.e("Log", "Clicked");

        }
    });
    rg1.setOnCheckedChangeListener(listener1);
    listener1 = new RadioGroup.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            if (checkedId != -1) {
                Log.e("Log", "changed");
            }
        }
    };
}

Solution

  • You're using the same listener for both callbacks so the first one is being destroyed. If you change the latter to listener2 it should be good.

    This one leaves a reference for listener1 with rg1

    rg1.setOnCheckedChangeListener(listener1);

    And then this destroys the original listener1 and gives you a new

    listener1 = new RadioGroup.OnCheckedChangeListener() {}