Android自定义CheckedTextView
我想在我的多个checkedtextview中自定义复选标记。我想使用一个简单的解决方案,所以我做到了:Android自定义CheckedTextView,android,custom-component,checked,Android,Custom Component,Checked,我想在我的多个checkedtextview中自定义复选标记。我想使用一个简单的解决方案,所以我做到了: if(serviceChecked.isChecked()){ serviceChecked.setChecked(false); serviceChecked.setCheckMarkDrawable(null); } else { serviceChecked.setChecked(true); serviceChecked.setCheckMar
if(serviceChecked.isChecked()){
serviceChecked.setChecked(false);
serviceChecked.setCheckMarkDrawable(null);
} else {
serviceChecked.setChecked(true);
serviceChecked.setCheckMarkDrawable(R.drawable.ic_action_done);
}
这个解决方案有两个问题:
首先,它只是第一次运行,当我选中其中一个checktextview,取消选中,然后再次选中时,我的drawable不可见
第二个问题是,我们可以再次看到默认的checkmarck The blue
我如何解决它
Thx,扩展复选框,您不需要更改setCheckMarkDrawable。只需设置一次,setChecked就可以适当地设置checked/non-checked状态。您的可绘制文件应该用XML定义,例如:
扩展CheckTextBox,您不需要更改setCheckMarkDrawable。只需设置一次,setChecked就可以适当地设置checked/non-checked状态。您的可绘制文件应该用XML定义,例如:
好吧,好吧,那么我不能保留默认的大小写,只添加我的可绘制图标以显示它已选中?你不明白我说的,但没关系:D我将尝试你的解决方案,thx:你可以只添加可绘制图标,但在这一点上,你将做一个真正自定义的复选框。如果这样做,则您希望管理可见性或交换图标,而不是完全删除它。mhh,我不确定是否理解:/i我尝试了您的解决方案,但问题是默认检查仍然可见。为什么?复选框不会将复选标记变为不可见,而是会切换可绘图项。试试你的复选框的非选中版本。好吧,好吧,那么我不能保留默认大小写,只添加我的可绘制图标以显示它已选中?你不明白我说的话,但没关系:D我将尝试你的解决方案,thx:你可以只添加可绘制的,但在这一点上,你将做一个真正自定义的复选框。如果这样做,则您希望管理可见性或交换图标,而不是完全删除它。mhh,我不确定是否理解:/i我尝试了您的解决方案,但问题是默认检查仍然可见。为什么?复选框不会将复选标记变为不可见,而是会切换可绘图项。尝试复选框的非选中版本。
<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>