gpt4 book ai didi

java - 如何在 Kotlin 中重写此方法(在 Java 中有效,但在 Kotlin 中无效)

转载 作者:行者123 更新时间:2023-12-02 01:09:30 29 4
gpt4 key购买 nike

我正在为我的 android (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();
}
}

我需要重写的方法是作为日历库中的接口(interface)编写的:

public class CompactCalendarView extends View {

public interface CompactCalendarViewListener {
public void onDayClick(Date dateClicked);
public void onMonthScroll(Date firstDayOfNewMonth);
}

我无法让这段代码在 Kotlin 中运行。如果我复制/粘贴此代码,android studio 会提供转换代码,但它仍然不起作用。

如何重写此方法?

最佳答案

在 kotlin 中,每当您想要实现某些回调时,您都会创建匿名对象。在你的情况下,kotlin 代码将是:-

CompactCalendarView().setListener( object: CompactCalendarView.CompactCalendarViewListener {
override fun onDayClick(dateClicked: Date?) {
// write your code here
}

override fun onMonthScroll(firstDayOfNewMonth: Date?) {}
}

关于java - 如何在 Kotlin 中重写此方法(在 Java 中有效,但在 Kotlin 中无效),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57703109/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com