2

我正在编写一个处理 2 个不同的应用程序CheckBoxes。当一个CheckBox被点击时,刻度的颜色应该是蓝色(而不是绿色),而另一个的颜色CheckBox保持绿色。

这是我的代码...

CheckBox green = (CheckBox) findViewById(R.id.greenButton);
CheckBox blue = (CheckBox) findViewById(R.id.blueButton);

blue.setOnCheckedChangeListener(new OnCheckedChangeListener(){
    public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
        if(arg1){
            blue.setHighlightColor(Color.BLUE);
            Toast.makeText(getBaseContext(), "Question Marked As Partial", 4000).show();
        }
    }
});

green.setOnCheckedChangeListener(new OnCheckedChangeListener(){
    public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
        if(arg1){
            blue.setHighlightColor(Color.GREEN);
            Toast.makeText(getBaseContext(), "Question Marked As Fully Understood!", 4000).show();
        }
    }
});

但是,两种CheckBoxes刻度颜色都保持绿色,并且Toast消息没有显示,所以我猜测OnCheckedChangeListener永远不会被调用。

有人可以提供任何建议吗?

4

1 回答 1

1

如果Toast没有出现,则可能您的听众实际上并未设置在CheckBoxes. 换句话说,也许这整段代码甚至都没有被调用。

如果您的代码在方法中,请确保您正在调用该方法以在 上设置侦听CheckBoxes器,或确保此代码在您的主要方法之一中,例如onCreate().

如果您还不知道,这将是学习如何调试代码的好时机 - 它可以非常快速和轻松地确定您的代码是否被调用。

于 2012-06-19T03:03:20.987 回答