2014-01-02 4 views
0

Я думаю, что вопрос прост. Но как новичок я не понимаю, что делать. Я прочитал этот урок How to make list view with multiple textviewsДобавить запись в textview

Мой вопрос: Как я могу динамически добавлять запись. Ошибка адаптера.add. И я не могу Google, потому что weather_data имеет тип погоды, и это неизвестно. Большое спасибо за вашу помощь.

+0

размещать код ошибки н LogCat – Prachi

+0

Не манипулировать модельные объекты непосредственно в адаптере, измените сбор данных в вашей деятельности/фрагменте и вызвать adapter.notifyDataSetChanged – Tobrun

+0

опубликовать уры кода пожалуйста –

ответ

0

Учебник использует массив 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(); 
+0

Спасибо soo много. Это хорошо работает. Я поставлю ссылку в разделе комментариев учебника. – user2920090

-2

Добавьте новые данные в свой ArrayList и вызовите функцию adaptor.notifyDataSetChanged(); , это обновит ваш список. И новые данные будут добавлены.

Смежные вопросы