安卓如何在Kotlin中重写此方法(在Java中工作,但在Kotlin中不工作)
我正在为我的安卓 (Kotlin) project使用日历小部件
我需要在Kotlin中对onDayClick()
侦听器进行编码,以便知道用户选择哪一天
根据github页面中的示例代码。为此,代码如下所示:
compactCalendarView.setListener(new CompactCalendarView.CompactCalendarViewListener() {
@Override
public void onDayClick(Date dateClicked) {
toolbar.setTitle(dateFormatForMonth.format(dateClicked));
List<Event> bookingsFromMap = compactCalendarView.getEvents(dateClicked);
Log.d(TAG, "inside onclick " + dateFormatForDisplaying.format(dateClicked));
if (bookingsFromMap != null) {
Log.d(TAG, bookingsFromMap.toString());
mutableBookings.clear();
for (Event booking : bookingsFromMap) {
mutableBookings.add((String) booking.getData());
}
adapter.notifyDataSetChanged();
}
}
我需要重写的方法在日历库中作为接口编写:
public class CompactCalendarView extends View {
public interface CompactCalendarViewListener {
public void onDayClick(Date dateClicked);
public void onMonthScroll(Date firstDayOfNewMonth);
}
我无法在Kotlin中使用此代码。如果我复制/粘贴此代码,安卓 studio会提供转换代码的功能,但仍然无法工作
如何重写此方法
# 1 楼答案
在kotlin中,每当您想要实现一些回调时,都会创建匿名对象。在您的情况下,kotlin代码将是:-
# 2 楼答案
应该是这样的
# 3 楼答案
你可以这样做-: