【发布时间】:2020-08-21 10:29:14
【问题描述】:
我自己用两个 Double val(经度和纬度)创建了一个 Location 类
现在在一个空的构造函数中,我想使用 FusedLocationProviderClient 来获取设备的当前位置,然后将其存储在两个 val 中以表示当前位置。我使用 LocationServices 制作了一个,然后在 onSucces 中将变量放入类中。问题是我收到以下错误:
由于可能的重新分配,禁止对捕获的成员值进行初始化
构造函数如下:
constructor(context: Context) {
val client = LocationServices.getFusedLocationProviderClient(context)
client.lastLocation.addOnSuccessListener { location: Location? ->
if (location != null) {
this.latitude = location.latitude
this.longitude = location.longitude
}
else {
this.latitude = 0.0
this.longitude = 0.0
}
}
}
我有点迷路了。如何解决此问题,以便在变量中包含用户坐标?
是否有某种方式,例如,我强制 lastlocation 先完成,然后再存储变量,以便编译器确定它有一个不会被重新分配的值?
【问题讨论】:
标签: android kotlin fusedlocationproviderclient