Добавление нескольких представлений в список - PullRequest
0 голосов
/ 16 июня 2010

Я пытался добавить эти представления в представление списка, используя фабрику такого типа , но каждый раз, когда я пытаюсь добавить представление в ListActivity, оно ничего не дает. Что я делаю неправильно? Я установил свой список просмотра так:

 List<View> views = new ArrayList<View>();
 for(int x =0;x<tagg_views.size();x++){
      lv.addHeaderView(views.get(x));
 }

Ответы [ 3 ]

1 голос
/ 16 июня 2010

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

Используемый вами метод addHeaderView делается с одним заголовком в списке, который всегда будет отображаться в верхней части списка.Это означает, что вызов этого в цикле не будет иметь разумного результата.

Посмотрите на пример helloListView , который Майра упоминает, чтобы понять, как работает список в Android.Чтобы увидеть, как работает пользовательский listadapter, взгляните на этот учебник , который выглядит многообещающе, несмотря на плохое форматирование кода.

1 голос
/ 16 июня 2010

ListView связан с адаптером.Адаптер отвечает за данные, отображаемые в ListView.Примите во внимание, что внутри ListView создает пул элементов (или пул для каждого типа элементов, которые могут отображаться в вашем случае).

Для этого вашему адаптеру необходимо реализовать следующие методы:

  • int getItemViewType (int position): Получить тип View, который будет создан getView (int, View, ViewGroup) для указанного элемента.Поэтому вам нужно идентифицировать ваши типы.
  • int getViewTypeCount (): Возвращает количество типов представлений, которые будут созданы getView (int, View, ViewGroup).Это используется для создания пула для каждого типа элемента.
1 голос
/ 16 июня 2010

Похоже, вы пытаетесь добавить х количество заголовков в свой ListView.Это не имеет смысла.

ListView должен содержать x количество копий одного и того же представления с различной информацией в каждой строке.

Привет ListView дает хороший пример правильного использования ListView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...