【问题标题】:Required variable, found value?必需的变量,找到的值?
【发布时间】:2018-09-30 21:13:06
【问题描述】:

使用此代码时出现错误

 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

【问题讨论】:

  • isChecked() 调用一个返回值的方法。您不能为方法调用分配新值。寻找一个名为 setChecked 的方法并使用它。
  • arrEmps.get(position).isChecked() 是一个吸气剂,你不能给它赋值。添加一个 Setter 并使用 arrEmps.get(position).setChecked()

标签: java android


【解决方案1】:

我认为您正在使用可点击项目的默认方法,如果是这样,请阅读此内容,如果不继续

参考Clickable interface,可以看到有两种方法:

isChecked()

是一个getter,它只返回检查变量的值,正如你所看到的检查(即:它告诉你是否检查了checkbox):

@ViewDebug.ExportedProperty
@Override
public boolean isChecked() {
    return mChecked;
}

还有一个setter

setChecked(布尔检查)

这个setter设置clickable interface的checked状态的属性值。 (即:将checkbox 设置为选中与否)

如果你没有使用默认的clickable item/view,但是你有自己的方法

如果您使用的对象是自定义对象,请通过添加setChecked(boolean value) 方法为您要设置的属性创建setter

public void setChecked(boolean value){
  mValue = value;
}

here你可以学习如何快速创建getter和setter

而且我总是推荐 this 教程(imo 最好的)来学习 android 基础知识。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    相关资源
    最近更新 更多