从函数访问变量并在内部 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()
我有这个 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()