Java 可能已经指定了最终的局部变量cb

Java 可能已经指定了最终的局部变量cb,java,android,Java,Android,我试图在if语句中获取id,以检查是否设置了复选框,但我不知道如何在if语句中定义cb,使其工作 当我将cb声明为逗号所示的局部变量时,我得到两个错误: 可能已经指定了最终的局部变量cb 无法对基元类型int调用isChecked() private void createCheckboxList(最终数组列表项){ 最终复选框cb; 最终线性布局ll=(线性布局)findViewById(R.id.lila); 对于(int i=0;i

我试图在if语句中获取id,以检查是否设置了复选框,但我不知道如何在if语句中定义
cb
,使其工作

当我将
cb
声明为逗号所示的局部变量时,我得到两个错误:

可能已经指定了最终的局部变量cb

无法对基元类型int调用isChecked()

private void createCheckboxList(最终数组列表项){
最终复选框cb;
最终线性布局ll=(线性布局)findViewById(R.id.lila);
对于(int i=0;i
您已将变量声明为最终变量(设置后无法更改):

您可能需要在该点设置值,或者删除最终修改器(您的循环将尝试多次指定值)

至于另一个问题:

if (cb.getId().isChecked())
当您在
.getId()
之后添加
.isChecked()
时,这是对第一个方法的返回对象调用此方法的一种简短方式

错误告诉您该方法不返回对象,而是返回基元类型(int)。您需要对复选框对象调用第二个方法,请尝试以下操作:

((CheckBox)v).isChecked();
或者,如果您已经拥有ID:

((CheckBox) findViewById(id)).isChecked();

您不必在声明点设置值。但是您只能指定它一次。这是真的-我增加了清晰性以使其更清晰。@Mikaveli:我必须使用for循环`for(int I:items){`在onClick方法中?视情况而定-如果您要查找的复选框是
cb
,则可以忽略它,并在该复选框上调用该方法。
((CheckBox)v).isChecked();
((CheckBox) findViewById(id)).isChecked();