必需变量,找到值?

时间:2018-04-20 07:56:08

标签: java android

我使用此代码

时出错
 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

2 个答案:

答案 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);