How does the CheckBox obtain it's respective drawables?
        Posted  
        
            by 
                alex2k8
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by alex2k8
        
        
        
        Published on 2011-01-11T22:22:02Z
        Indexed on 
            2011/01/11
            22:53 UTC
        
        
        Read the original article
        Hit count: 335
        
The CheckBox class extends the CompoundButton, but add nothing to it. But some how it obtains it's respective look. I found some declarations in Android sources, but wonder how they are mapped to CheckBox class?
public class CheckBox extends CompoundButton {
    public CheckBox(Context context) {
        this(context, null);
    }
    public CheckBox(Context context, AttributeSet attrs) {
        this(context, attrs, com.android.internal.R.attr.checkboxStyle);
    }
    public CheckBox(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
}
Styles
<style name="Theme">
    <item name="checkboxStyle">@android:style/Widget.CompoundButton.CheckBox</item>
</style>
<style name="Widget.CompoundButton.CheckBox">
    <item name="android:background">@android:drawable/btn_check_label_background</item>
    <item name="android:button">@android:drawable/btn_check</item>
</style>
EDIT:
Probably I was not clear... I understand how the drawable assigned to Widget.CompoundButton.CheckBox style, but how this style assigned to CheckBox class? I see the ".CheckBox" in the style name, but is this naming convention really what makes the trick? If so, what are the rules? If I derive MyCheckBox from CompoundButton, can I just define the Widget.CompoundButton.MyCheckBox style and it will work?
© Stack Overflow or respective owner