在android中的复选框上设置背景颜色

时间:2013-10-18 10:34:04

标签: java android

我正在尝试设置复选框的背景颜色,然后检查它是否未选中,然后删除该颜色。

任何人都可以帮我查找复选框的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
         * 
         */
    }

颜色部分我会尝试自己,需要学习。

4 个答案:

答案 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 stateunchecked 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);
    }
}