Search code examples
androidkotlinmaterial-design

Android/Kotlin Material Button Group default selection


I have a Material Button Toggle Group in a Fragment layout (with single selection and selection required), but on load of my app I want one of the button to already be selected. I thought adding this to my Main Activity onCreate() would have done the trick (the id of my button is paletteA):

paletteA.isPressed = true

but instead my app just crashes on loadtime and no errors are displayed in the Run window. Feels like something is not loading in time or is null, even though all of my Fragments have already been loaded in, etc, and this is the very last thing in my onCreate(). Any ideas?


Solution

  • The MaterialButtonToggleGroup widget has an XML attribute named app:checkedButton that can be used to load a button in the group as checked.

    To set a particular button inside the MaterialButtonToggleGroup to load as checked by default, pass the id of the button to be checked as the value to the app:checkedButton attribute.

    <com.google.android.material.button.MaterialButtonToggleGroup
            ...
            app:singleSelection="true"
            android:id="@+id/activity_main_togglebutton"
            app:checkedButton="@id/activity_main_button2">
    

    This can also be done programatically:

        MaterialButtonToggleGroup group = findViewById(R.id.activity_main_togglebutton);
        group.check(R.id.activity_main_button2);