При кодировании приложения для Android в Kotlin я столкнулся с этой ошибкой:

Я использую OpenWeatherMapApi и из API пытаюсь получить данные прогноза. И мне удалось получить данные прогноза благодаря okhttp3 и Gson, но теперь моя проблема заключается в отображении этих данных. Я создал и новый класс для настраиваемого ArrayAdapter, где я пытаюсь отобразить в созданном мною textView, но я совершенно не понимаю, почему я продолжаю получать ошибку: массив не должен иметь размер 1, но он заканчивается иметь это
Код
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import kotlinx.android.synthetic.main.weather_row.view.*
class ForecastAdapter(val forecast: Forecast) : RecyclerView.Adapter<ForecastData>(){
override fun getItemCount(): Int {
return forecast.list.count()
}
override fun onCreateViewHolder(p0: ViewGroup, p1: Int): ForecastData {
val layoutInflator = LayoutInflater.from(p0?.context)
val cellForRow = layoutInflator.inflate(R.layout.weather_row, p0, false)
return ForecastData(cellForRow)
}
override fun onBindViewHolder(p0: ForecastData, p1: Int) {
val getWeather = forecast.list[p1]
val clouds = getWeather.weather[p1]
p0.view.textView_text_clouds.text = clouds.main
}
}
class ForecastData(val view: View): RecyclerView.ViewHolder(view){
}
Хорошо, это действительно сработало! Спасибо! Как мне принять это как правильный ответ, если он есть в комментариях?
Ваша проблема с
getWeather.weather[p1]
«Список» weather на самом деле не является списком. Обычно он состоит только из одного элемента.
Используйте вместо этого:
getWeather.weather[0]
Проблема скорее всего в
getWeather.weather[p1]. В «списке»weatherобычно всего один элемент. Вы должны использоватьgetWeather.weather[0].