我想在我的几个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,
答案 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>