Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: Change the color of RadioButtons and checkboxes programmatically

I created RadioButton and CheckBox in LinearLayout programatically. But, now I want to change radio button's color and check boxes's color. I use

RadioButton.setHighlightColor(Color.parseColor("#0c83bd"));

checkbox.setHighlightColor(Color.parseColor("#0c83bd"));

But it didn't work.

like image 809
Amit Desale Avatar asked Sep 09 '15 06:09

Amit Desale


People also ask

How can I change the color of my checkbox in Android?

If you want to change checkbox color then "colorAccent" attribute will use for checked state and "android:textColorSecondary" will use for unchecking state. "actionOverflowButtonStyle" will use for change the color of overflow icon in the Action bar. Same is for refresh button which i am using in my app.

How to select radio button by default in android?

To make a radio button is selected by default, put android:checked="true" within the RadioButton element.

How to uncheck a radio button when another is checked android studio?

Android RadioButton has only two states: checked or unchecked. Apart from these, the radio button can't have any other value. You can't uncheck a checked RadioButton. The only way to uncheck is to select some other RadioButton belonging to that RadioGroup.


2 Answers

Use AppCompatCheckBox and AppCompatRadioButton instead of CheckBox and RadioButton. Your xml will have :

<android.support.v7.widget.AppCompatCheckBox
    android:id="@+id/cbSelected"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:backgroundTint="@color/colorAccent" //This to set your default button color
    android:checked="true"/>

<android.support.v7.widget.AppCompatRadioButton
    android:id="@+id/rb"
    app:buttonTint="@color/colorAccent" //This to set your default button color
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

Now for the java code : Create ColorStateList

        ColorStateList colorStateList = new ColorStateList(
                new int[][]{
                        new int[]{android.R.attr.state_enabled} //enabled
                },
                new int[] {getResources().getColor(R.color.colorPrimary) }
        );

To change the color programatically for AppCompatRadioButton or AppCompatCheckBox call setSupportButtonTintList.

AppCompatRadioButton radioButton = (AppCompatRadioButton) findViewById(R.id.rb);
radioButton.setSupportButtonTintList(colorStateList);

AppCompatCheckBox cbSelected = (AppCompatCheckBox) findViewById(R.id.cbSelected);
cbSelected.setSupportButtonTintList(colorStateList);
like image 173
Rana Ranvijay Singh Avatar answered Sep 28 '22 12:09

Rana Ranvijay Singh


Try this

AppCompatRadioButton newRadioButton = new AppCompatRadioButton(this);
AppCompatCheckBox newCheckBox = new AppCompatCheckBox(this);

Insted of

RadioGroup newRadioButton = new RadioGroup(this);
CheckBox newCheckBox = new CheckBox(this);
like image 36
Akshay Avatar answered Sep 28 '22 13:09

Akshay