我正在尝试设置复选框的背景颜色,然后检查它是否未选中,然后删除该颜色。
任何人都可以帮我查找复选框的ID然后检查是否已选中。我已在我的XML表android:onClick="handleCheckBoxClick"
为了让您了解它的外观,我有大约25个复选框。 当他们被按下时,我需要对他们做同样的事情。
是否可以有一个代码块或者是否需要为每个复选框重复一次?
编辑: 忘记提及这是在一个片段内(如果这有任何区别)
public void handleCheckBoxClick(View view) {
int chkID = view.getId();
if (){
}else{
}
//find which checkbox was checked then get its id
/*
* if checked then
* change background colour to blue
* if unchecked then
* remove background colour
*
*/
}
颜色部分我会尝试自己,需要学习。
答案 0 :(得分:3)
使用以下代码。
public void handleCheckBoxClick(View view) {
CheckBox tmpChkBox = (CheckBox) findViewById(view.getId());
if(tmpChkBox.isChecked())
{
tmpChkBox.setBackgroundColor(Color.BLUE);
}
else
{
tmpChkBox.setBackgroundColor(Color.RED);
}
}
答案 1 :(得分:2)
最好的方法是使用custom checkbox。只需使用可绘制的XML文件即可在checked state
和unchecked state
中设置背景。
这是一个another simple example来做。以下图片来自此页面:
答案 2 :(得分:0)
如果您有兴趣更改复选框(按钮)的背景颜色,请使用
mycheckbox.setButtonDrawable(R.drawable.otherbackground);
其他背景是可绘制文件夹中的图像,您想要更改复选框的背景
尝试以下
mycheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
mycheckbox.setButtonDrawable(R.drawable.imageWhenActive);
}
else
{
mcheckbox.setButtonDrawable(R.drawable.imageWheninactive);
}
}
});
答案 3 :(得分:0)
这是你的答案
public void handleCheckBoxClick(View view) {
CheckBox chkBox = (CheckBox) findViewById(view.getId());
if(chkBox.isChecked())
{
chkBox.setBackgroundColor(color.blue);
//or
chkBox.setButtonDrawable(R.drawable.imagechk);
}
else
{
chkBox.setBackgroundColor(color.red);
//or
chkBox.setButtonDrawable(R.drawable.imageunchk);
}
}