我有一个用于 8 个复选框的按钮,我希望当我单击按钮时,我的一段代码在此代码中运行例如案例 1,以显示 chk1 上的勾号 (note.done1) .并且当我第二次单击按钮时,我的应用程序识别 chk1 被选中,现在检查 chk2(note.done2) 以及另外 6 个复选框。
但是这段代码是错误的,因为当我单击按钮时,chk1 和 chk3 和 chk5 是正确的。
我不能使用 ischecked() 方法,因为我将 listview 与 1000(在更少)项目中一起使用.只是我可以使用 note.done 其中链接到每个项目中的复选框.我可以使用链接到每个复选框和 sqlite 的数组!
那么谁能帮我?
btnOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
switch (G.result_s1[position]) {
case 0: {
note.done1 = true;
note.c = Color.RED;
G.database_s.execSQL("UPDATE mystate SET s1='1' WHERE s_id=" + (position + 1));
G.result_s1[position] = 1;
//AdapterNote.img.setBackgroundColor(Color.CYAN);
}
break;
case 1:
{
note.done2 = true;
note.c = Color.GREEN;
G.database_s.execSQL("UPDATE mystate SET s2='1' WHERE s_id=" + (position + 1));
G.result_s2[position] = 1;
}
break;
}
switch (G.result_s3[position]) {
case 0: {
note.done3 = true;
note.c = Color.MAGENTA;
G.database_s.execSQL("UPDATE mystate SET s3='1' WHERE s_id=" + (position + 1));
G.result_s3[position] = 1;
}
break;
case 1: {
note.done4 = true;
note.c = Color.YELLOW;
G.database_s.execSQL("UPDATE mystate SET s4='1' WHERE s_id=" + (position + 1));
G.result_s4[position] = 1;
}
break;
}
dialog.dismiss();
finish();
}
});
你为什么不使用ischecked()?
每当您单击该按钮时,您都会选中另一个复选框
btnOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if(!checkbox1.ischecked()){
// check checkbox1
}else if(checkbox1.ischecked()){
// check checkbox2
}else if(checkbox1.ischecked() && checkbox2.ischecked()){
// check checkbox3
}....
}
}