从函数访问变量并在内部 class 中使用它

Accessing a variable from a function and use it in an inner class

我有这个 getLastLocation 函数,它获取当前用户位置并将它们存储到 location.latitude 和 location.longitude

fun getLastLocation(){
...
Log.d("Debug:" ,"Latitude: "+ location.latitude+" Longitude: "+location.longitude)
...
    }

我有这个内部 class,它通过 lat 和 lon 值从 openweathermap 获取天气:

inner class WeatherTask : AsyncTask<String, Void, String>() {

        override fun doInBackground(vararg params: String?): String? {

            var latitude = location.latitude
            var longitude = location.longitude

            var response: String?
            try {
                response =
                    URL("http://api.openweathermap.org/data/2.5/weather?lat=$latitude&lon=$longitude&units=metric&appid=$api").readText(
                        Charsets.UTF_8
                    )
            } catch (e: Exception) {
                response = null
            }
            return response
        }

但是它说我的“位置”是一个未解析的引用,它是什么?我该如何解决?

您可以在构造函数中将位置作为参数传递:

inner class WeatherTask(var location: Location) : AsyncTask<String, Void, String>() {

称其为:

WeatherTask(location).execute()