1

我正在尝试设置复选框的背景颜色,当它被选中时,如果它未被选中,则删除该颜色。

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

3 回答 3

2

最好的方法是使用自定义复选框。在两者中设置背景,checked state并且unchecked state只需使用可绘制的 XML 文件。

这是另一个简单的例子。以下图片取自此页面:

]

于 2013-10-18T10:42:01.040 回答
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);
    }
}
于 2013-10-18T10:43:59.270 回答
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);
        }
    }
});
于 2013-10-18T10:38:15.943 回答