2017-05-07 81 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,問題已解決 –