Java 可能已经指定了最终的局部变量cb
我试图在if语句中获取id,以检查是否设置了复选框,但我不知道如何在if语句中定义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
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();