在用户将其状态更改为Checked后,我尝试更改CheckBox背景。下面的代码不能很好地工作。如果我单击未选中的复选框,它将状态和颜色更改为蓝色,当我再次单击它并取消选中时,颜色保持蓝色而不是变为红色。我确实引入了invalidate()的调用,但没有成功。我确认该方法收到点击并正确查看检查状态,但如果我所做的声明似乎只工作一次。
XML
<CheckBox
android:id="@+id/chkLargeIcons"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="20"
android:onClick="handleCheckBoxClick" />
代码
public void handleCheckBoxClick(View view) {
CheckBox tmpChkBox = (CheckBox) findViewById(view.getId());
if(tmpChkBox.isChecked())
{
tmpChkBox.setBackgroundColor(color.blue);
}
else
{
tmpChkBox.setBackgroundColor(color.red);
}
System.out.println(view.getId() + " " + tmpChkBox.isChecked());
switch (view.getId()) {
case R.id.chkLargeIcons:
...
break;
...
}
...
}
我应该对我的代码进行哪些更改以使其按我的意愿工作?
提前感谢您的任何帮助和建议。