我正在尝试在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());
    }
}

07-24 13:46