Подгрузка данных в Listview

Интерфейс, диалоги, темы, стили, меню
Ответить
tirpitz28
Сообщения: 13
Зарегистрирован: 16 ноя 2012, 16:58

Подгрузка данных в Listview

Сообщение tirpitz28 » 16 ноя 2012, 17:22

Доброго времени суток, столкнулся с проблемой добавления данных в listview, сразу говорю, обработал просто немерянное количество информации, обшарил гугл с разными формами запросов поиска по данной теме, вариантов решения много, но ни один из них у меня не получился...В чем суть вопроса: У меня есть база данных в сети на сервере, программа написанная на Android посылает запрос на сервер, сервер формирует XML и возвращает его приложению, приложение парсит XML и выводит данные в LISTVIEW. Это все работает, но мне приходит только 20 строк результата. Я написал функцию, которая срабатывает, когда пользователь дошел до конца списка, то есть до 20го пункта, вывожу проверочное сообщение, что срабатывает конец списка

Код: Выделить всё

Toast.makeText(this, "Конец", Toast.LENGTH_SHORT).show();
Все делаю через AsyncTask, все запросы делаю в doInBackground, вывод списка в onPostExecute
Вот как я делаю вывод полученного массива из распарсеного XML размером 20 элементов:

Код: Выделить всё

ListView lvMain = (ListView) findViewById(R.id.lvMain);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, massiv_dannyh);
lvMain.setAdapter(adapter);
Данный участок кода работает отлично для вывода первых 20 пунктов. Что мне делать дальше, я делаю запрос повторить AsyncTask, естественно он опять получает XML c 20-тью результатами, и перерисовывает мне listview, а мне нужно к первым 20 добавить еще 20 пунктов, выручайте. Кто готов активно помочь, мой скайп Tirpitz28, заранее спасибо!

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Подгрузка данных в Listview

Сообщение rezak90 » 16 ноя 2012, 17:37

ну так правильно он и будет перерисовывать так как вы

Код: Выделить всё

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, massiv_dannyh);
пересоздаёте адаптер каждый раз
вам придётся создать кастомный адаптер и написать например метод setData(String _massiv_dannyh); в который будет передаваться новые данные и после этого нужно будет вызвать adapter.notifyDataSetChanged(); метод который говорит адаптеру что пара обновить данные.
R.id.team
Политика на форуме запрещена

tirpitz28
Сообщения: 13
Зарегистрирован: 16 ноя 2012, 16:58

Re: Подгрузка данных в Listview

Сообщение tirpitz28 » 16 ноя 2012, 17:47

Дело в том, что я начинающий разработчик под андроид, и почти все мои приложения состоят из чьих то участков кода, по этому если не сложно, можно ли ссылочки на примеры? Потому что для меня "создать кастомный адаптер и написать например метод setData(String _massiv_dannyh);" это страшные слова=)))

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Подгрузка данных в Listview

Сообщение rezak90 » 16 ноя 2012, 17:49

копипаст страшная вещь))) в 54-м уроке продемонстрировано как писать кастомный адаптер.
R.id.team
Политика на форуме запрещена

tirpitz28
Сообщения: 13
Зарегистрирован: 16 ноя 2012, 16:58

Re: Подгрузка данных в Listview

Сообщение tirpitz28 » 16 ноя 2012, 17:51

Спасибо, сейчас буду прорабатывать=)))Тяжело с ПХП на java переходить, на пхп, javascript c jquery серьезные вещи делаю, а с андроидом пока тяжко=)

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Подгрузка данных в Listview

Сообщение rezak90 » 16 ноя 2012, 17:57

уже не первый раз вижу что человек переходи с веб на андроид, а почему? неужели погоня за з/п, или надоел веб?
R.id.team
Политика на форуме запрещена

tirpitz28
Сообщения: 13
Зарегистрирован: 16 ноя 2012, 16:58

Re: Подгрузка данных в Listview

Сообщение tirpitz28 » 16 ноя 2012, 18:01

Нет, я в конторе единственный программист,появилась необходимость в приложении. А я вообще для себя это все учу, люблю развиваться=)Да и Java интересна за счет кроссплатформенности

Ответить