0

Спасибо за помощь! Другой вопрос!Android - лучший способ показать данные без большого количества файлов макета

В приложении, которое я создаю, в настоящее время у меня есть файл макета с расширяемым lstview, где вы можете выбрать 10 опций. Когда вы выбираете один из этих вариантов, вы выбираете еще 4 варианта. После выбора недели у вас есть еще 3 варианта. Каждый из этих 3 вариантов в настоящее время открывает новое действие, которое имеет listview с флажком и текстовым просмотром в каждой строке, по 10 строк каждая.

Вместо того, чтобы создавать 30 файлов макетов, которые, вероятно, приведут к краху приложения (не знаю, сколько потребуется для разбивки приложения), я думаю, что должен быть лучший способ. Я искал его и не могу найти то, что искал. Я немного прочитал о sqlite, но разве вам не нужны отдельные файлы макета для вызова разных частей таблиц? Есть ли способ сделать один файл макета с представлением списка и заполнить listview разными данными из sqlite, в зависимости от того, откуда появился клик в раскрывающемся списке?

Например, если они нажимают тренировку 29 в раскрывающемся списке, затем нажмите «Неделя 1», а затем нажмите «День 1». Может ли эта единая компоновка загружать данные из sqlite db. Тогда, если они должны были вернуться назад и сказать клик тренировки 30, неделя 2, день 3, тот же самый макет загружает различную информацию из db?

Я также пытаюсь выяснить, как сделать двойной развертываемое список еще

Еще раз спасибо!

+0

Для разбивки приложения потребуется тысячи файлов макетов. Приложение с 30 только по-прежнему довольно мало. –

ответ

1

Вы должны использовать базу данных SQLite для всех своих данных (если вы не планируете хранить данные в памяти, что не очень хорошая идея, если это довольно большая сумма). Вы должны просто создать простой вид и повторно использовать его. Вам нужно будет создать собственный адаптер (расширяющийся от BaseExpandableListAdapter для расширяемых представлений списков и BaseAdapter для обычных видов списка), а затем запросить таблицу данных SQLite для данных, которые вам нужны.

Если вы показываете только элементы String, вы можете напрямую расширить ArrayAdapter, а затем предоставить массив элементов, которые вы хотите отобразить для обычного списка.

Что касается сбоев, существует множество приложений с более чем 30 файлами макетов. Кроме того, даже если вы начали загружать множество просмотров, Android автоматически начнет уничтожать представления, когда он начнет работать с низким объемом памяти и воссоздает их, когда это необходимо для этого.

+0

Спасибо! Я думаю, что я должен быть в порядке без базы данных, так как все данные представляют собой строки с одной строкой, которые собирают вычисления предыдущих чисел! Благодаря! – LBJ33

2

Так что это очень просто все, что вам нужно сделать, это создать DataAdapter для списка. Затем вы можете добавить элементы списка, которые привязаны к слушателю onclick, а затем вы можете очистить этот список и добавить к нему новые элементы. полезной ссылкой. https://guides.codepath.com/android/Using-an-ArrayAdapter-with-ListView

+0

Спасибо! Я думаю, что я должен быть в порядке без базы данных, так как все данные представляют собой строки с одной строкой, которые собирают вычисления предыдущих чисел! Благодаря! – LBJ33

+0

Помните, что представления очень тяжелые, когда у них есть дети, это заставит ваше приложение медленно загружаться. Если у вас минимальные детские представления, это будет быстрее. Вот почему создание одномерного списка и очистка его при нажатии лучше, потому что тогда у вас нет огромного дерева, которое андроид затем вызывает встроенную функцию для перерисовки всего. Если бы я изменил ребенка, он по-прежнему привлекает всех родителей этого ребенка и его братьев и сестер. – JQluv

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