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

希望对您有所帮助!