Изучение Kotlin и застревание с ArrayAdapter - PullRequest
0 голосов
/ 26 мая 2020

Я изучаю Kotlin, и все шло хорошо, пока он не перестал работать, единственное, что я изменил, это ссылки. Я попытался настроить параметр "this", но это не сработало. Вот мой код:

    package com.example.myweatherapp

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.ArrayAdapter
import android.widget.ListView
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response

class ForecastActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_forecast)



         var retriever = WeatherRetriever()

            val callback = object : Callback<Weather> {
                override fun onFailure(call: Call<Weather>?, t: Throwable) {
                println("It failed")
                }

                override fun onResponse(
                    call: Call<Weather>?, response: Response<Weather>?) {
                    println("It wORKED")

                    println(response?.body()?.main)

                    title = response?.body()?.name

                    var forecasts = response?.body()?.main

                    var castListView = findViewById<ListView>(R.id.forecastListView)

                    var adapter = ArrayAdapter(this@ForecastActivity,android.R.layout.simple_list_item_1,forecasts)

                    castListView.adapter=adapter
                }

            }
            retriever.getForecast(callback)
        }

        }

Я получаю следующую ошибку: «Ни одна из следующих функций не может быть вызвана с аргументами. прилагается: "Любая помощь для newb ie? Большое спасибо!

Изменить: вот класс погоды


import retrofit2.Call
import retrofit2.Callback
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import retrofit2.http.GET
import retrofit2.http.Query

interface weatherAPI{
    @GET("weather?id=3621224&units=metric&appid=ff2563aab36fc89bc7a3c4fe58dd7f3e")
    fun getForecast() : Call<Weather>
}

class Weather(val main: WeatherForecast, val name: String )
class WeatherForecast (val main: List<main>)
class main (val temp: String, val feels_like: String, val temp_min: String, val temp_max: String)


class WeatherRetriever {
    val service : weatherAPI

    init {
    val retrofit=    Retrofit.Builder().baseUrl("https://api.openweathermap.org/data/2.5/").addConverterFactory(GsonConverterFactory.create()).build()
    service = retrofit.create(weatherAPI::class.java)
    }
    fun getForecast(callback : Callback<Weather>){
        val call = service.getForecast()
        call.enqueue(callback)

    }

}
...