我如何在 kotlin 中从 fun onResult 获取数据到 fun onMapReady

问题描述

我使用改造从 API 获取数据。我将在地图中显示数据。数据已成功从改造中获取,但我发现问题是获取数据响应乐趣 onMapReady。我不知道是不是

class HomeMapsActivity : AppCompatActivity(),OnMapReadyCallback,MapHomeContract.View {

private lateinit var mMap: GoogleMap
 lateinit var presenter: MapHomePresenter
 lateinit var prefsManager: PrefsManager

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_home_maps)
    supportActionBar!!.title = "Posisi driver"
    supportActionBar!!.setdisplayHomeAsUpEnabled(true)

    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    val mapFragment = supportFragmentManager
        .findFragmentById(R.id.map) as SupportMapFragment
    mapFragment.getMapAsync(this)

    prefsManager = PrefsManager(this)
    presenter = MapHomePresenter(this)
    presenter.getAnak(prefsManager.prefsIdUser)

}

override fun onMapReady(googleMap: GoogleMap) {

    mMap = googleMap


    for (dataAnak in anak) {
        // Add a marker in Sydney and move the camera
        val sydney = LatLng(-34.0,151.0)
        mMap.addMarker(MarkerOptions().position(sydney).title("Marker in Sydney"))
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney))
    }
}


override fun onResult(dataAnakResponse: AnakResponse) {
    dataAnakResponse.anak
}

}

请帮忙

解决方法

onMapReady() 在您最初启动地图活动时被调用。您可以在 onResult 中设置地图数据。

override fun onResult(dataAnakResponse: AnakResponse) {
   val anak =  dataAnakResponse.anak

for (dataAnak in anak) {
        // Add a marker in Sydney and move the camera
        val sydney = LatLng(-34.0,151.0)
        mMap.addMarker(MarkerOptions().position(sydney).title("Marker in Sydney"))
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney))
    }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...