Android自定义CheckedTextView

时间:2014-03-26 16:10:57

标签: android custom-component checked

我想在我的几个checkedtextview中自定义复选标记。我想用一个简单的"解决方案,所以我做到了:

    if(serviceChecked.isChecked()){
    serviceChecked.setChecked(false);
    serviceChecked.setCheckMarkDrawable(null);
} else {
    serviceChecked.setChecked(true);
    serviceChecked.setCheckMarkDrawable(R.drawable.ic_action_done);
}

我对此解决方案存在两个问题:

首先,它只是第一次运行,当我检查我的一个checktextview,取消选中并再次检查时,我的drawable不可见。

第二个问题是,我们可以再次看到"默认" checkmarck(蓝色)....

我该如何解决?

THX,

1 个答案:

答案 0 :(得分:4)

扩展CheckTextBox,您不需要更改setCheckMarkDrawable。只需设置一次,setChecked应适当设置已检查/未检查状态。您的drawable应该用XML定义,like this

<selector xmlns:android="http://schemas.android.com/apk/res/android">  

    <item android:state_checked="true"
        android:drawable="@drawable/checkbox_checked" /> <!-- checked -->

    <item android:state_pressed="true"
        android:drawable="@drawable/checkbox_checked" /> <!-- pressed -->

    <item android:drawable="@drawable/checkbox_default" /> <!-- default -->

</selector>