我正在编写一个处理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
。
有人可以提供任何建议吗?
答案 0 :(得分:1)
如果未显示Toast
,则可能实际上未在CheckBoxes
上设置您的侦听器。换句话说,也许这整段代码甚至都没有被调用。
如果您的代码位于方法中,请确保调用方法在CheckBoxes
上设置侦听器,或确保此代码位于onCreate()
等主要方法之一。
如果您还不知道,那么现在是学习如何调试代码的好时机 - 它可以非常快速,轻松地确定您的代码是否被调用。