Listview, адаптер и взаимодействие с сетью

Интерфейс, диалоги, темы, стили, меню
Ответить
Makute
Сообщения: 42
Зарегистрирован: 18 окт 2012, 15:16

Listview, адаптер и взаимодействие с сетью

Сообщение Makute » 13 мар 2013, 16:42

Доброго времени суток.
Ситуация следующая: есть listview и, естественно, к нему адаптер. Путем проб и ошибок была выяснена невозможность взаимодействовать с элементами listview(не из адаптера при заполнении) без ошибок, костылей и геморроя, только если душу дьяволу продавать. Посему все заполняется в адаптере, но данные берутся из интернета, с чем, собственно, и связаны проблемы.
Делал так

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

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
	StrictMode.setThreadPolicy(policy);
//загрузка и обработка данных 
далее заполнял view и скармливал его getView, все было хорошо, если бы не понижение fps приложения от одной(!) такой процедуры, при том заметно.

Вопрос в следующем: как взаимодействовать с view из листа не из адаптера и не при заполнении? Т.е. присвоили адаптер, а потом уже заполняем. Возможно ли это? Знаю что возможно, но то элемент обнулится при скрытии оного на экране, то ещё чего..
Как организовать работу с потоками, хандлерами, asynctask'ами так, чтобы заполнение в адаптере не приносило подтормаживаний после заполнения\во время? Заполнение, собственно, тоже вынесено в поток, с этим проблем нет.

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

Re: Listview, адаптер и взаимодействие с сетью

Сообщение rezak90 » 13 мар 2013, 22:46

Вам нужен "ленивый ListView", примеров куча, даже на том же хабре
R.id.team
Политика на форуме запрещена

Makute
Сообщения: 42
Зарегистрирован: 18 окт 2012, 15:16

Re: Listview, адаптер и взаимодействие с сетью

Сообщение Makute » 14 мар 2013, 11:03

rezak90 писал(а):Вам нужен "ленивый ListView", примеров куча, даже на том же хабре
Ссылки можно увидеть?
Погуглил, ничего подобного не увидел. Если суть его в том, что он не рефрешит элементы при прокрутке - это не подойдет, скорее всего.

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

Re: Listview, адаптер и взаимодействие с сетью

Сообщение rezak90 » 14 мар 2013, 11:18

серъёздно нчиего нету? 105 000 страниц
https://sites.google.com/site/androidap ... y-listview
https://github.com/commonsguy/cwac-endl ... apter.java
суть в том что бы на каждую ячейку создавался отдельный поток, но здесь главное не перемудрить что бы потоки не плодились
R.id.team
Политика на форуме запрещена

Makute
Сообщения: 42
Зарегистрирован: 18 окт 2012, 15:16

Re: Listview, адаптер и взаимодействие с сетью

Сообщение Makute » 14 мар 2013, 15:49

rezak90 писал(а):серъёздно нчиего нету? 105 000 страниц
https://sites.google.com/site/androidap ... y-listview
https://github.com/commonsguy/cwac-endl ... apter.java
суть в том что бы на каждую ячейку создавался отдельный поток, но здесь главное не перемудрить что бы потоки не плодились
Благодарю.
Вы говорили, что на хабре есть статья о них же?

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: Listview, адаптер и взаимодействие с сетью

Сообщение Finch » 14 мар 2013, 15:56

Самый крутой вариант реализации который встречал на сегодняшний день. Использую с Вью холдером в связке и очень доволен, никаких фризов и зависаний. Гладкий скрол даже при очень быстром пролистывании огромнейшего листа и даже на уг смартфонах, типа Ace, Gio и тд и тп.

В основном все лаги и фризы из-за картинок, ну по крайней мере не видел чтоб от текста лагало =)
CEO of a company R.id.team

Makute
Сообщения: 42
Зарегистрирован: 18 окт 2012, 15:16

Re: Listview, адаптер и взаимодействие с сетью

Сообщение Makute » 14 мар 2013, 16:49

Всем спасибо, проблема почти решена.
Господа, можете привести пример взаимодействия AsyncTask и listview? Т.е. в потоке что-то выполнили, потом передали листу, он этими данными что-то заполнил? Ленивые листы делают именно это, по сути, но я не смог разобраться в них в полной мере.. Там все делается через кэш, перезагрузку листа и т.д.

Makute
Сообщения: 42
Зарегистрирован: 18 окт 2012, 15:16

Re: Listview, адаптер и взаимодействие с сетью

Сообщение Makute » 14 мар 2013, 16:56

UPD:
резак, не мог бы ты на русском, адекватными примерами объяснить, как реализовать ленивый лист и собственный поток для каждой задачи?

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

Re: Listview, адаптер и взаимодействие с сетью

Сообщение rezak90 » 14 мар 2013, 17:13

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

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Listview, адаптер и взаимодействие с сетью

Сообщение Foenix » 15 мар 2013, 14:27

Быстрее английский выучить можно ))
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Makute
Сообщения: 42
Зарегистрирован: 18 окт 2012, 15:16

Re: Listview, адаптер и взаимодействие с сетью

Сообщение Makute » 15 мар 2013, 18:58

Olivka писал(а):Быстрее английский выучить можно ))
Проблем с переводом нет, но сам механизм работы не совсем понятен. Либо он слишком уж тривиален(грузим-кэшируем-перезагружаем адаптер, беря данные из кэша-повторяем), либо я чего-то не понял.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Listview, адаптер и взаимодействие с сетью

Сообщение Foenix » 15 мар 2013, 20:30

Я про то, что как организовать ленивый лист - этого полно в сети. Не только один единственный rezak90 это знает..
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить