Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Передать адаптер в Intent - Android

22.08.2013, 09:32. Просмотров 1538. Ответов 23
Метки нет (Все метки)

Как это сделать???
Создал свой адаптер (My_adapter) для списка цветных строк и пытаюсь избавится от всех мест где раньше использовал стандратный алерт-диалог.

Так передаются все значения (строки), но не адаптер.
Java
1
2
3
4
5
            Intent intent = new Intent(this, activity_TreeList.class);
            My_adapter atl_1 = new My_adapter(this);
            // передаем значения нужные ДО показа - заголовок, текст кнопок...
            intent.putExtra("adapter", atl_1); // адаптер с начинкой из строк
            startActivityForResult(intent, 1);
Как же тогда???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2013, 09:32     Передать адаптер в Intent
Посмотрите здесь:

Android Как передать intent данные в Service?
Android Хочу сделать подписи к меню, меню у меня создано ListView, есть два массива, как их передать в адаптер?
Android Передать через Intent информацию об Item
Передать через intent VIEW Android
Android Пытаюсь передать данные через Intent, но выходит ошибка
Android Как передать ссылку через Intent
Как передать через intent нажатие кнопки в другом активити Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
24.08.2013, 13:48  [ТС]     Передать адаптер в Intent #21
Цитата Сообщение от V0v1k Посмотреть сообщение
для использования разных лаяутов для айтемов в одном списке есть свой механизм с использование методов getViewTypeCount и getItemViewType
Возможно позднее переделаю, но не думаю что это СИЛЬНО ускорит первую загрузку и хоть как-нибудь повлияет на повторное использоваие адаптера... 5-10 секунд на первую загрузку в 100-300 записей один раз перед дальнейшим частым использованием - это не много.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.08.2013, 14:05     Передать адаптер в Intent #22
у вас не должно при первом выводе загружать все айтемы, должны загружаться столько, сколько помещается на экране(10 например), а потом ListView их переиспользует
Цитата Сообщение от V0v1k Посмотреть сообщение
в общем, списки всегда грузятся быстро неважно сколько айтемов, хоть миллион, и на создавать миллион view вам не хватит памяти и если у вас там где то большие задержки, то вы что-то делаете неправильно.
Добавлено через 11 минут
вы в адаптере сохранили например такие view
R.layout.list_item_1
R.layout.list_item_2
R.layout.list_item_2
R.layout.list_item_2
R.layout.list_item_1
и дальше хотите использовать для новых данных, а что если новым данным нужно будет
R.layout.list_item_2
R.layout.list_item_1
R.layout.list_item_1
R.layout.list_item_1
R.layout.list_item_2
?

Добавлено через 2 минуты
если надумаете все делать по правилам, не забудьте еще про такую практику как ViewHolder Pattern
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
24.08.2013, 14:13  [ТС]     Передать адаптер в Intent #23
Вобще-то у меня все по правилам! Просто сложная математика на отрисовку одной/каждой ячейки. 2-3 страницы кода на каждую ячейку. Оптимизировать надо именно отрисовку!
Попробовал использовать getViewTypeCount и getItemViewType - прирост не заметен. Может и есть, но милисекунды. ViewHolder я использовал с самого начала. Но буферизация реально ускоряет в сотни раз...

Добавлено через 1 минуту
Цитата Сообщение от V0v1k Посмотреть сообщение
и дальше хотите использовать для новых данных, а что если новым данным нужно будет
Либо обнулю буферизацию (отдельная простая процедура) и подожду еще один раз 10 секунд. Либо вставлю новые ячейки и список ОДИН раз задержится ТОЛЬКО на этих записях, т.к. только они не будут буферизированы...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2013, 14:41     Передать адаптер в Intent
Еще ссылки по теме:

Получить JSON и передать все его параметры его в Intent. Использован автофильтр Android
Android Starting: Intent { act=android.intent.action.MAIN. и пустой белый экран
Android Передать ссылку на класс через Intent
Android Intent
Android Передать через intent ArrayList объектов своего класса

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.08.2013, 14:41     Передать адаптер в Intent #24
Цитата Сообщение от Tester64 Посмотреть сообщение
Вобще-то у меня все по правилам!
нет.
Цитата Сообщение от Tester64 Посмотреть сообщение
2-3 страницы кода на каждую ячейку
у вас 2-3 страницы вызовов setTex/setBackground?
с ViewHolder даже 2-3 страницы вызовов setTex/setBackground будут обрабатываться очень быстро, если по правильному все делать
если у вас столько полей много, то значит айтем большой, значит их на экране мало, значит все должно быстро грузится если делать все правильно
Цитата Сообщение от Tester64 Посмотреть сообщение
Попробовал использовать getViewTypeCount и getItemViewType - прирост не заметен. Может и есть, но милисекунды. ViewHolder я использовал с самого начала.
естественно, в вашем случае они ничего не дают, так как у вас все сделано не по правилам андроида.

Добавлено через 7 минут
Цитата Сообщение от Tester64 Посмотреть сообщение
Но буферизация реально ускоряет в сотни раз...
ListView и так буферизирует все что ему нужно, вы просто не умеете это использовать.

Добавлено через 4 минуты
Цитата Сообщение от Tester64 Посмотреть сообщение
2-3 страницы кода на каждую ячейку
ну так для новых данных вы все рано проганяете эти 2-3 страницы! а view и так буферизируются без вашего вмешательства и не все 300, а ровно столько, сколько нужно, вы явно делаете что-то не так.

Добавлено через 6 минут
Вывод:
ListView сам буферизирует View в том количестве которое ему нужно, ViewHolder ускоряет заполнение этих View, а задержки вызваны вашим же излишним кодом который создает 300 view сразу.
Yandex
Объявления
24.08.2013, 14:41     Передать адаптер в Intent
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru