Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.70/10: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
1

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

22.08.2013, 09:32. Просмотров 1776. Ответов 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);
Как же тогда???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2013, 09:32
Ответы с готовыми решениями:

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]
Выдает такую ошибку, хотя смартфон видит, он разрешает отладку, при запуске...

Передать через intent VIEW
Как можно через intent передать "VIEW", полученное вот таким способом: View...

Передать через Intent информацию об Item
Выводит ошибку и приложение закрывается by Force Close ошибка по ходу в...

Передать ссылку на класс через Intent
Возможно ли подобное? Есть класс, в котором храню больше 50 параметров...

Как передать ссылку через Intent
Как можно в такой класс package app.kray.anddev; import...

23
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
24.08.2013, 13:48  [ТС] 21
Цитата Сообщение от V0v1k Посмотреть сообщение
для использования разных лаяутов для айтемов в одном списке есть свой механизм с использование методов getViewTypeCount и getItemViewType
Возможно позднее переделаю, но не думаю что это СИЛЬНО ускорит первую загрузку и хоть как-нибудь повлияет на повторное использоваие адаптера... 5-10 секунд на первую загрузку в 100-300 записей один раз перед дальнейшим частым использованием - это не много.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.08.2013, 14:05 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
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
24.08.2013, 14:13  [ТС] 23
Вобще-то у меня все по правилам! Просто сложная математика на отрисовку одной/каждой ячейки. 2-3 страницы кода на каждую ячейку. Оптимизировать надо именно отрисовку!
Попробовал использовать getViewTypeCount и getItemViewType - прирост не заметен. Может и есть, но милисекунды. ViewHolder я использовал с самого начала. Но буферизация реально ускоряет в сотни раз...

Добавлено через 1 минуту
Цитата Сообщение от V0v1k Посмотреть сообщение
и дальше хотите использовать для новых данных, а что если новым данным нужно будет
Либо обнулю буферизацию (отдельная простая процедура) и подожду еще один раз 10 секунд. Либо вставлю новые ячейки и список ОДИН раз задержится ТОЛЬКО на этих записях, т.к. только они не будут буферизированы...
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.08.2013, 14:41 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 сразу.
0
24.08.2013, 14:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2013, 14:41

Как передать intent данные в Service?
Здравствуйте! как передать intent данные в класс с расширением Service?...

Передать через intent ArrayList объектов своего класса
У меня есть ArrayList из обьектов моего класса. Мне нужно передать это через...

Пытаюсь передать данные через Intent, но выходит ошибка
Пытаюсь передать данные через Intent, но выходит ошибка, когда пытаюсь передать...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

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