Пользовательский адаптер Android вне привязанного исключения

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

Я использую 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].

TheWanderer 18.10.2018 22:52

Хорошо, это действительно сработало! Спасибо! Как мне принять это как правильный ответ, если он есть в комментариях?

Zubair Amjad 18.10.2018 22:58
0
2
68
1

Ответы 1

Ваша проблема с

getWeather.weather[p1]

«Список» weather на самом деле не является списком. Обычно он состоит только из одного элемента.

Используйте вместо этого:

getWeather.weather[0]

Другие вопросы по теме