Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android自定义CheckedTextView_Android_Custom Component_Checked - Fatal编程技术网

Android自定义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

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

    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>