Учебник использует массив Java, который трудно добавить после того, как было создано:
Weather weather_data[]
Обычай адаптер используется не перегрузить метод Add либо, поэтому он не работает правильно , Я предлагаю вместо этого использовать ArrayList, который содержит объекты типа Weather. В MainActivity:
ArrayList<Weather> weather_data = new ArrayList<Weather>();
weather_data.add(new Weather(R.drawable.weather_cloudy, "Cloudy"));
weather_data.add(new Weather(R.drawable.weather_showers, "Showers"));
weather_data.add(new Weather(R.drawable.weather_snow, "Snow"));
weather_data.add(new Weather(R.drawable.weather_storm, "Storm"));
weather_data.add(new Weather(R.drawable.weather_sunny, "Sunny"));
В WeatherAdapter:
Изменить тип переменной класса 'данных' из массива в ArrayList:
Weather data[] = null;
стать:
ArrayList<Weather> data = null;
Измените конструктор, чтобы принять ArrayList вместо массива:
public WeatherAdapter(Context context, int layoutResourceId, ArrayList<Weather> data)
В методе GetView, вам необходимо изменить синтаксис для получения правильного элемента массива (используйте метод GET ArrayList):
Weather weather = data.get(position);
Затем вы можете добавить элементы динамически из вашего MainActivity. Например:
weather_data.add(new Weather(R.drawable.weather_stormy, "Stormy"));
adapter.notifyDataSetChanged();
размещать код ошибки н LogCat – Prachi
Не манипулировать модельные объекты непосредственно в адаптере, измените сбор данных в вашей деятельности/фрагменте и вызвать adapter.notifyDataSetChanged – Tobrun
опубликовать уры кода пожалуйста –