Search code examples
androidandroid-togglebutton

How to Stop a Toggle Button from being deactivated by a click


I have 4 ToggleButtons set up in an OnCheckedChangeListener().

ToggleButton 1 is activated on startup and the listener is set so that when you press another ToggleButton within the checker, it deactivates the first button and then activates the button that you clicked.

However, when I click a ToggleButton that is already activated, it deactivates itself which is not what I want.

I want to know, is there a way of doing this so that an activated ToggleButton can only be deactivated by pressing one of the other ToggleButtons with the checker?

This Is what I have But It Doesn't seem to work.

 OnCheckedChangeListener toggleChangeChecker = new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // TODO Auto-generated method stub
            if (isChecked){
                if (buttonView == one) {
                    one.setChecked(true);
                    two.setChecked(false);
                    three.setChecked(false);
                    four.setChecked(false);
                }
                if (buttonView == two) {
                    one.setChecked(false);
                    two.setChecked(true);
                    three.setChecked(false);
                    four.setChecked(false);
                }
                if (buttonView == three) {
                    one.setChecked(false);
                    two.setChecked(false);
                    three.setChecked(true);
                    four.setChecked(false);
                }
                if (buttonView == four) {
                    one.setChecked(false);
                    two.setChecked(false);
                    three.setChecked(false);
                    four.setChecked(true);
                }

            }
        }
    };

Solution

  • You could use if(yourButton.isChecked()) yourButton.setChecked(true); inside your OnCheckedChangeListener, guess that would do the trick.