Я вижу три подхода для вас. Как уже говорилось в комментариях название вашего вопроса, вводит в заблуждение, так это то, что я предполагаю:
- у вас есть список карт, которые вы хотите отобразить
- каждая карта может иметь список комментариев
Так основная проблема в том, что у вас есть двумерную структуру данных, который вы хотите отобразить с помощью одномерный компонент пользовательского интерфейса, в вашем случае с ListView.
Вы можете решить вашу проблему:
Использование ExpandableListView, где карты являются родителями и комментарии являются дочерними элементами. См. Пример [1].
Свести вашу иерархию данных. Таким образом, у вас есть только список предметов, где карты как-то рассматриваются как «заголовки» или «разделители» для ваших комментариев. Вам необходимо перезаписать [2], в этом случае ваш адаптер сможет возвращать два разных вида. В методе getView()
вам тогда нужно сделать что-то вроде:
if(list.get(position) instanceOf Card) return getCardView(...); else if(list.get(position) instanceOf Comment) return getCommentView(...);
Рендер комментарии динамически в контейнер в представлении карты. Поэтому в вашем файле макета для просмотра карты используйте ViewGroup, например. LinearLayout и дать ему уникальный идентификатор, например, «llComments». У вас есть отдельный файл макета для ваших комментариев. Затем в вашем текущем коде вы можете раздуть этот файл и просто добавить возвращаемое представление в контейнер (llComments). Я думаю, что это решение, которое вы ищете. Таким образом, в вашем коде, сделать что-то вроде:
View commentConvertView = inflater.inflate(R.layout.list_item_comment, ...); ViewGroup comments = (ViewGroup) convertView.findViewById(R.id.llComments); comments.removeAllView; for(list.get(position).getComments()){ //bind the data to commentConvertView comments.add(commentConvertView); }
[1] http://www.vogella.com/tutorials/AndroidListView/article.html#expandablelistview_concept [2] http://developer.android.com/reference/android/widget/BaseAdapter.html#getViewTypeCount()
Вы не можете создать XML макет из кода ... но вы можете создать Мнения код ... в любом случае вопрос неясен – Selvin
У меня есть один макет в XML-файле, который выглядит как поле комментариев. Я хочу создать этот блок комментариев несколько раз динамически. – Malay
Настоящие программисты не используют термин: 'it does not work' ... – Selvin