Я использую два ListView на одном экране. Из-за использования двух Listviews
, вероятно, Parent ListView
и Child ListView
, этот класс Child ListView Adapter
не отображает все значения списка в Child ListView. Он показал только позицию 0 th(first)
в Child ListView, для этой проблемы выше у меня есть использовал код ответа из этой просмотра списка Android внутри ссылки прокрутки .Теперь я могу видеть все значения списка в моем Child ListView
, но он не показывает все мои значения списка одновременно, которые я взял из Web service call
. Он показал первое значение только в списке, потому что высота представления списка была установлена на высоту одного элемента списка. Если я прокручиваю дочерний ListView вниз, я могу видеть все значения в ListView. Что мне нужно, это если я получаю пять значений списка от веб-службы, он должен отображать все пять элементов одновременно.
примечание: если я установил жестко запрограммированные значения для списка, он отобразил все элементы в дочернем ListView одновременно.
Отредактировано
Как я этого добился с помощью MergeAdapter
Этот метод createAdapter
вернет объект Adapter
, и я установил этот адаптер в свой список с помощью setAdapter(createAdapter(new ArrayList<T>()))
private ListAdapter createAdapter(List<T> items) {
mergeAdapter = new MergeAdapter();
mergeAdapter.addAdapter(endlessFeedAdapter);
return mergeAdapter;
}
Мне нужно
Мне предложили использовать ExpandableListView
вместо two ListViews
. Если я использую ExpandableListView
, мне придется изменить тип возвращаемого значения метода createAdapter
на ExpandableListAdapter
, для этого я использовал приведенный ниже код.
private ExpandableListAdapter createAdapter(List<T> items) {
mergeAdapter = new MergeAdapter();
mergeAdapter.addAdapter(endlessFeedAdapter);
return (ExpandableListAdapter) mergeAdapter;
}
но он показал следующее Excaption
Caused by: java.lang.ClassCastException: com.commonsware.cwac.merge.MergeAdapter cannot be cast to android.widget.ExpandableListAdapter
Значения из веб-службы
Жестко закодированные значения
ListViews
. Если я перейду наExpandableListView
, это займет больше времени для реализации. С моей точки зрения, любые небольшие изменения в коде исправят это. - person Jamal   schedule 18.12.2014ExpandableListView
. Кроме того, когда вы встраиваете адаптер в другой адаптер, это сильно снижает производительность. Миграция может быть болезненной, но это правильный путь. В противном случае вы просто продолжите взламывать код, чтобы заставить работать что-то, что не предназначено для такой работы. - person Jay Soyer   schedule 19.12.2014ListView
внутриListView
вряд ли сработает. Что касается вашегоClassCastException
,MergeAdapter
не являетсяExpandableListAdapter
. Вам нужно будет реализовать свой собственныйExpandableListAdapter
- см. этот проект для примера этого. - person CommonsWare   schedule 03.01.2015