我使用此代码
时出错 holder.box.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
boolean newState = !arrEmps.get(position).isChecked();
arrEmps.get(position).isChecked() = newState;
Toast.makeText(mContext.getApplicationContext(),
arrEmps.get(position).getName() + "check" + newState,
Toast.LENGTH_LONG).show();
}
});
错误行是
arrEmps.get(position).isChecked() = newState;
错误消息是
Error:(86, 48) error: unexpected type
required: variable
found: value
答案 0 :(得分:1)
我认为您使用的是可点击项目的默认方法,如果是这样,请继续阅读
参考Clickable interface,您可以看到有两种方法:
器isChecked()
是getter
,它只返回checked变量的值,因为你可以看到检查(即:它告诉你是否检查了checkbox
):
@ViewDebug.ExportedProperty
@Override
public boolean isChecked() {
return mChecked;
}
还有setter
,
setChecked(布尔检查)
此setter设置clickable interface
的已检查状态的属性值。 (即:将checkbox
设置为已选中或未设置)
如果您没有使用默认的clickable
项目/视图,但是您有自己的方法
如果您使用的对象是自定义对象,请通过添加setter
方法为要设置的属性创建setChecked(boolean value)
public void setChecked(boolean value){
mValue = value;
}
here您可以了解如何快速创建getter和setter
我总是推荐this教程(imo the best)学习机器人基础知识。
希望这有帮助
答案 1 :(得分:0)
对于赋值运算符,左侧( LHS )必须是变量,右侧( RHS )是返回值的值或表达式。
在你的情况下:
arrEmps.get(position).isChecked()= newState;
LHS 是一个返回值的表达式,它不是有效的systax。
解决方案:您可以改用setCheck方法。例如
arrEmps.get(位置).setChecked(newState);