我尝试改变CheckBox用户将其状态更改为后的背景Checked。下面的代码不能很好地工作。如果我单击未选中的复选框,它将状态和颜色更改为蓝色,当我再次单击它并取消选中时,颜色保持蓝色而不是更改为红色。我做了介绍电话无效()没有成功。我确认该方法收到点击并正确看到检查状态,但是if 语句我所做的似乎只工作一次。
XML
<CheckBox
android:id="@+id/chkLargeIcons"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="20"
android:onClick="handleCheckBoxClick" />
Code
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;
...
}
...
}
我应该在代码中更改哪些内容才能使其按我想要的方式工作?
预先感谢您的任何帮助和建议。
要在检查时更改它,您需要附加一个 OnCheckedChangeListener。然后将上面的代码放入其中。
CheckBox tmpChkBox = (CheckBox) findViewById(view.getId());
tmpChkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
buttonView.setBackgroundColor(Color.BLUE);
} else {
buttonView.setBackgroundColor(Color.RED);
}
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)