Android MVVM RecyclerView ClickListener - PullRequest
       6

Android MVVM RecyclerView ClickListener

0 голосов
/ 07 февраля 2020

Я пытаюсь реализовать clickListener в Android RecyclerView, с фрагментами, привязкой данных, ViewModel / LiveData, и мой код был создан на основе практики Udacity 'Разработка Android приложений с Kotlin ' курс. Тем не менее, мой проект в Java, так как весь бэкэнд уже написан. Я не знаю достаточно Kotlin и не могу понять, как реализовать следующее в Java!

class SleepNightListener(val clickListener: (sleepId: Long) -> Unit)
    fun onClick(night: SleepNight) = clickListener(night.nightId)
}

Я смотрел в Интернете других людей, которые внедрили этот тип структуры в Java, но это всегда делалось по-другому, что вызывает проблемы с тем, как структурирован мой ViewAdapter.

Заранее спасибо.

1 Ответ

2 голосов
/ 07 февраля 2020

Таким образом, 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());    
    }
}
...