我正在尝试在Android RecyclerView中实现带有片段,数据绑定(bind),ViewModel / LiveData的clickListener,并且我的代码是根据Udacity“使用Kotlin开发Android应用”类(class)中的做法构建的。但是,我的项目使用Java,因为所有后端均已编写。我对Kotlin的了解不多,无法解决如何在Java中实现以下内容!
class SleepNightListener(val clickListener: (sleepId: Long) -> Unit)
fun onClick(night: SleepNight) = clickListener(night.nightId)
}
我在网上看过用Java实现这种类型的结构的其他人,但是总是以不同的方式进行操作,这会导致ViewAdapter的结构方式出现问题。
提前致谢。
最佳答案
因此,您在问题中粘贴的Kotlin
可以在Java
中实现为:
interface ClickListener {
void onCLick(Long sleepId);
}
class SleepNightListener {
private ClickListener clickListener;
public SleepNightListener(ClickListener clickListener) {
this.clickListener = clickListener;
}
public void onClick(SleepNight night) {
if (clickListener != null) clickListener.onCLick(night.getNightId());
}
}