Как сохранить мое местоположение в глобальной переменной - PullRequest
0 голосов
/ 22 октября 2018

Я получаю свои данные GPS через:

fusedLocationClient.lastLocation
            .addOnSuccessListener { location: Location? ->
                location2 = location
                var latitude =  location?.latitude
                var longitude = location?.longitude
                println(latitude)
                println(longitude)
                println("gps?")
                StopsFromWebservice().execute()
            }

, который работает.Но я хочу использовать местоположение другим способом.Поэтому я попытался определить

var location2 : Location? = null

и вызвать его через

fun FindClosestStops(location: Location?){
    for (i in 0..haltestellen_lat.size-1){
        var x=0.0
        var y=0.0
        var distance = 0.0
        x= (haltestellen_lat[i]-location?.latitude!!)*(haltestellen_lat[i]-location?.latitude!!)
        y= (haltestellen_lon[i]-location?.longitude!!)*(haltestellen_lon[i]-location?.longitude!!)
        distance = sqrt(x+y)
        StopDistances[i]= distance

        Haltestellen.add(distance.toString())

        println("distance = " + distance)
        println("FindClosestStops")
    }
    SortDistance()
    time.post(UpdateView);
}

, но затем android Studio убивает мою задачу с этой ошибкой:

Caused by: kotlin.KotlinNullPointerException
    at com.xxx.yyy.zzz.FindClosestStops(fahrplanmap.kt:100)

, что именно таккод:

 x= (haltestellen_lat[i]-location?.latitude!!)*(haltestellen_lat[i]-location?.latitude!!)

как я могу записать свои данные о местоположении в х и у?

1 Ответ

0 голосов
/ 22 октября 2018

Вы определили location как обнуляемые и используете обнуляемые средства доступа для доступа к latitude и longitude.Однако сразу после этого вы используете оператор non-nullable !!, который выдает ошибку.

Проще говоря, вам нужно либо проверить, имеет ли значение location ноль, и определить поведение, если это так, или цифру.способ гарантировать, что метод никогда не вызывается, пока location равен нулю.

...