не уверен, что происходит.Это хорошо работало в Java, но при переходе на Kotlin я не знаю, как это сделать.Я получаю эту ошибку, но я получаю ту же ошибку, которая
Property getter or setter required
на val mMoment: Момент
class SquareViewHolder(v: CardView, viewModel: BarreViewModel) : RecyclerView.ViewHolder (v) {
val mImage: ImageView
val by lazy mMoment: Moment
init {
mImage = v.findViewById(R.id.square_moment)
mImage.setOnClickListener {
//val focused = ArrayList<Moment>(0)
//focused.add(mMoment)
//viewModel.focusedMoments = focused
//viewModel.setItemClicked(true)
}
}
fun bind(moment: Moment) {
val mMoment = moment
}
}
Я также пытался var lateinit mMoment: Moment
Но я получаю ту же ошибку.
Теперь, когда объект является объектом данных Kotlin, я не уверен, что это вызовет проблему.
Это работает на Java, но по какой-то причине Kotlin, похоже, некак создание объекта таким образом.Я не знаю почему.Спасибо за любую помощь!
В Java это было:
public class SquareMomentViewHolder extends RecyclerView.ViewHolder {
public ImageView mImage;
public Moment mMoment;
BarreChatViewModel viewModel;
public SquareMomentViewHolder(CardView v, BarreChatViewModel viewModel) {
super(v);
mImage = v.findViewById(R.id.square_moment);
mImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
List<Moment> focused = new ArrayList(0);
focused.add(mMoment);
viewModel.setFocusedMoments(focused);
viewModel.setItemClicked(true);
}
});
}
public void bind(Moment moment) {
mMoment = moment;
}
}
Возможная причина этой ошибки может заключаться в том, что этот класс данных используется для моей ROOMDatabase.Это объект сущности, который я перетаскивал в пользовательский интерфейс.Может быть, это неправильный способ делать вещи.Я не знаю.