xmlで記述するandroid:button="@null"をコードで書くには
ラジオボタンのカスタマイズで良くあるのが
<RadioButton android:text="On" android:textAppearance="?android:attr/textAppearanceSmall" android:button="@null" android:gravity="center" andriud:background="@drawable/custom_radio" />
という感じでandroid:button="@null"を指定することにより本来のラジオボタンのイメージを無効にしてしまう方法。
これをコードから実現するにはSetButtonDrawableにAndroid.Resource.Id.Emptyを指定すれば良い。SetButtonDrawableにTransparentなColorDrawableを指定すれば良い。
RadioButton radio = new RadioButton (context); radio.SetButtonDrawable(new Android.Graphics.Drawable.ColorDrawable(Android.Graphics.Color.Transparent)); radio.SetBackgroundResource (Resource.Drawable.custom_radio); radio.SetText("On"); radio.SetTextAppearance(context, Android.Resource.Attribute.TextAppearanceSmall); radio.Gravity = GravityFlags.Center;
追記 2011/10/21 14:30
API Level11以上だと動作しなかったので記事を修正した。
追記 2015/02/04 09:54
コメントで指摘されたTypoを修正(Android.Graphics.Drawables->Android.Graphics.Drawables)