2015-09-14 2 views
0

Привет, я столкнулся с проблемой дизайна и не могу найти оптимальный подход. Вот пример того, что я пытаюсь достичь:Динамически добавлять в андроид список?

enter image description here

Когда пользователь нажимает на иконку плюс другая строка будет добавлена ​​ниже текущего состояния. В настоящее время строка условия находится в списке и настраивается с использованием пользовательского адаптера. Левый столбец заполняется параметрами, которые пользователь выбрал из списка выбора столбцов. Все, что работает, но я не могу понять, как добавить новую строку. Итак, есть способ динамически добавить новую строку в список и заполнить ее теми же данными? ИЛИ есть лучший альтернативный способ установить это?

+0

[Посмотрите это] (http://androidadapternotifiydatasattanged.blogspot.in/2013/02/android-notifydatasetchanged.html) –

ответ

1

Итак, ваш пользовательский адаптер начинается с трех рядов? Затем, когда пользователь нажимает на значок плюса, слушатель onClick должен вызывать метод на вашем адаптере, который устанавливает какое-то указание, что теперь есть четыре строки (после чего он вызывает notifyDataSetChanged()). И ваш метод getView() должен смотреть на этот индикатор, а если позиция == 2 (третья строка) и индикатор не установлен, он возвращает вид «Заказать». Если индикатор установлен в, он должен вернуть «Просмотр условий» и возвращать только «Порядок по» при позиции == 3 (четвертая строка). Имеет ли это смысл?

Ваш адаптер отражает состояние вашей модели списка в любой момент времени. Любое событие, которое происходит там, где вы хотите изменить ListView, должно обновить какое-то состояние в адаптере. Затем getView() должен всегда проверять текущее состояние при возврате представления. Так всегда думаю, в два этапа:

  1. Ваше событие (как onClick) обновляет некоторые модели данных в адаптере где-нибудь.

  2. Метод вашего адаптера getView() всегда проверяет текущие данные модели в адаптере, чтобы выяснить, как настроить представление для данной позиции.

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