2017-05-07 59 views
0

我创建简单的小部件的自定义复选框,因为这下面的代码,这段代码设置自定义字体做工精细,但我不能选择或取消CheckBox的Android定制复选框

public class CustomFontCheckBox extends AppCompatCheckBox { 

    public CustomFontCheckBox(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
setTypeface(FontManager.getInstance(getContext()).loadFont("fonts/my_font.ttf")); 
    } 

    public CustomFontCheckBox(Context context, AttributeSet attrs) { 
     this(context, attrs, 0); 
    } 

    @SuppressWarnings("unused") 
    private void internalInit(Context context, AttributeSet attrs) { 

    } 
} 

XML布局:

<com.myapp.test.Widgets.CustomFontCheckBox 
    android:id="@+id/ch1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginRight="@dimen/sickness_depth_marginRight" 
    android:button="@null" 
    android:buttonTint="@color/colorAccent" 
    android:drawableRight="?android:attr/listChoiceIndicatorMultiple" 
    android:text="@string/diabetes" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="@color/body_text_color"/> 

回答

1

嗯,我想你与它的构造搞乱其风格像这样使用

public class CustomFontCheckBox extends AppCompatCheckBox { 


    public CustomFontCheckBox(Context context) { 
     super(context); 
     init(); 
    } 

    public CustomFontCheckBox(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     init(); 
    } 

    public CustomFontCheckBox(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
     init(); 
    } 
    private void init(){ 
     //set your typeface here. 
//  setTypeface(""); 
    } 
} 
+0

是的,这是正确的,但我有更多的40复选框,我不喜欢用这种方法 –

+0

更新我的答案检查出来。 –

+0

Thansk,问题已解决 –