Google MapView 使用 Kotlin 实现 OnMapReadyCallback
Google MapView implements OnMapReadyCallback with Kotlin
我使用 EmptyActivity 并想在 MainActivity 中放置一个 MapView,我想我需要实现 OnMapReadyCallback,这是我的代码。
package com.example.myapplication
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.google.android.gms.maps.OnMapReadyCallback
class MainActivity : AppCompatActivity(), OnMapReadyCallback{
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
为什么我得到这个
错误:Class 'MainActivity' 不是抽象的,没有实现抽象成员 public abstract fun onMapReady(p0: GoogleMap!): Unit defined in com.google.android.gms.maps.OnMapReadyCallback.
OnMapReadyCallback
是一个只有一个方法的接口 onMapReady
。编译器告诉你的是,当你实现一个接口时,如果你的 class 本身不是接口也不是抽象的,你必须为接口中定义的方法声明实现。所以你会像这样更新你的activity:
class MainActivity : AppCompatActivity(), OnMapReadyCallback{
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
override fun onMapReady(map: GoogleMap) {
// Add implementation here
}
}
这可能会解决这个特定问题,但听起来您可能需要阅读接口及其工作原理 in Kotlin and in Java。
希望对您有所帮助!
我使用 EmptyActivity 并想在 MainActivity 中放置一个 MapView,我想我需要实现 OnMapReadyCallback,这是我的代码。
package com.example.myapplication
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.google.android.gms.maps.OnMapReadyCallback
class MainActivity : AppCompatActivity(), OnMapReadyCallback{
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
为什么我得到这个 错误:Class 'MainActivity' 不是抽象的,没有实现抽象成员 public abstract fun onMapReady(p0: GoogleMap!): Unit defined in com.google.android.gms.maps.OnMapReadyCallback.
OnMapReadyCallback
是一个只有一个方法的接口 onMapReady
。编译器告诉你的是,当你实现一个接口时,如果你的 class 本身不是接口也不是抽象的,你必须为接口中定义的方法声明实现。所以你会像这样更新你的activity:
class MainActivity : AppCompatActivity(), OnMapReadyCallback{
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
override fun onMapReady(map: GoogleMap) {
// Add implementation here
}
}
这可能会解决这个特定问题,但听起来您可能需要阅读接口及其工作原理 in Kotlin and in Java。
希望对您有所帮助!