人。我一直在和kotlin一起开展一个项目,我需要制作一个与父活动交流的片段......我完全按照谷歌和其他网站的建议,但我仍然收到错误"活动不会覆盖任何内容&# 34; ...所有其他解决方案对我不起作用......这是代码。
FRAGMENT
path
而不是主要活动
.on('end, function(){})
我在活动类上得到了错误...当我删除"覆盖?时,错误消失但是当我点击按钮时没有任何反应......我做错了什么?
答案 0 :(得分:1)
正如@chris所评论的那样,您需要将onCreate()
方法之外的行移到其后:
override fun onTimeSettedListener(comic: String) {
println("params")
}
您还需要匹配名称替换
interface OnTimeSettedListener {
fun onTimeSetListtedener(comic : String){
println("ok")
}
}
通过
interface OnTimeSettedListener {
fun onTimeSettedListener(comic: String) {
println("ok")
}
}
<强>更新强>
如果你修改名称拼写错误并删除片段内界面中onTimeSettedListener
声明的默认实现,那么当你的活动实现它并且Android Studio警告你有关丢失的覆盖时,它是可能的单击它并选择IDE为您实现它以避免错误:
interface OnTimeSettedListener{
fun onTimeSettedListener(comic : String)
}
您还需要修复呼叫替换:
listener.onTimeSetListtedener("test")
通过
listener.onTimeSettedListener("test")
答案 1 :(得分:1)
我认为你不应该在你的界面方法中添加方法体。它不允许在Java中使用。在Kotlin中没有显示方法体受限制的错误。但你应该删除身体。改变您的界面,如
interface OnTimeSettedListener{
fun onTimeSetListtedener(comic : String)
}
实际上,你并没有覆盖你的倾听者的方法。 OnTimeSettedListener
中的方法名称为onTimeSetListtedener
,但您要覆盖代码中不存在的onTimeSettedListener
。
同样@albodelu在评论中提到了答案和@chris,你不能在方法中编写方法。这是不正确的用法。