How to define bold in an Android selector?
The style has no selector: using one will either break the build/runtime or will have no effect and be neglected. There are only two types of selectors: for colors and for drawables.
So, there is only one option: apply bold style on the fly, possibly, by listening to check state changes.
=== Example ===
MainActivity.java:
package com.example.radiobuttontest;import android.os.Bundle;import android.app.Activity;import android.graphics.Typeface;import android.widget.CompoundButton;import android.widget.RadioButton;import android.widget.RadioGroup;public class MainActivity extends Activity implements CompoundButton.OnCheckedChangeListener { private RadioGroup mGroup2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mGroup2 = (RadioGroup)findViewById(R.id.radioGroup2); RadioButton button1 = (RadioButton)findViewById(R.id.option_1); button1.setOnCheckedChangeListener(this); } @Override protected void onResume() { super.onResume(); RadioButton checked = (RadioButton)findViewById(mGroup2.getCheckedRadioButtonId()); checked.setTypeface(Typeface.DEFAULT_BOLD); } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { buttonView.setTypeface(isChecked ? Typeface.DEFAULT_BOLD : Typeface.DEFAULT); }}
layout/activity_main.xml:
<?xml version="1.0" encoding="utf-8"?><RadioGroup xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/radioGroup2" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <RadioButton android:id="@+id/option_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" android:text="@string/option_1" android:textColor="@drawable/radio_picker_color" /> <RadioButton android:id="@+id/option_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/option_2" android:textColor="@drawable/radio_picker_color" /></RadioGroup>
drawable/radio_picker_color.xml [I changed colors you have used (they are very faint) in the question with "#0099CC" for demonstration purposes]:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- checked --> <item android:state_checked="true" android:color="#0099CC" /> <!-- default --> <item android:color="#0099CC" /></selector>
Result:
Hope this helps.
You can do something like this
Create your own style e.g. mystyle.xml
<style name="mystyle"> <item name="android:textColor">#ffffff</item> <item name="android:textStyle">bold</item></style>
Now call this in your selector like this
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_checked="true" style="@style/mystyle" /></selector>