在适配器中更改Realm中非持久性Model字段的数据

时间:2015-09-17 19:55:06

标签: android android-adapter realm

这是我的模型类,其中isChecked是非持久性的。

public class MyModel extends RealmObject {

    private String name;

    private String destination;

    @Ignore
    private boolean isChecked;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDestination() {
        return destination;
    }

    public void setDestination(String destination) {
        this.destination = destination;
    }

    public boolean isChecked() {
        return isChecked;
    }

    public void setChecked(boolean isChecked) {
        this.isChecked = isChecked;
    }
}

在我的适配器中,当用户选择列表中的项目时,我必须更改isChecked的值。

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    holder.Name.setText(myModels.get(position).getName());
    holder.Destination.setVisibility(View.VISIBLE);
    holder.Destination.setText(myModels.get(position).getDestination());
    updateCheckedState(holder, myModels.get(position), false);

    holder.label.setOnClickListener(v -> {
        myModels.get(position).setChecked(!myModels.get(position).isChecked());
        updateCheckedState(holder, myModels.get(position), true);
    });
}

但价值仍然相同。在我不使用Realm之前,它工作得很好。

1 个答案:

答案 0 :(得分:-2)

覆盖onResume() 别忘了super.onResume();