Я использую ExpandableListView с пользовательским адаптером, который расширяет BaseExpandableListAdapter. Теперь я хочу добавить заголовок в этот расширяемый список, поэтому вместо того, чтобы использовать мой адаптер, чтобы получить представление о элементах, мне нужно использовать тот, который "автоматически" создан с заголовком, поэтому я не получаю IndexOutOfBoundsExceptions, потому что теперь заголовок является элементом в позиции 0.
В других случаях, когда мой адаптер не был расширяемым, мне просто нужно вызвать myList.getAdapter(), и все было в порядке, но теперь мне нужно получить адаптер, расширяющий BaseExpandableListAdapter, и я не могу найти способ сделать это.
myList = (ExpandableListView)findViewById(R.id.my_list);
myList .setGroupIndicator(null);
myList .setOnGroupClickListener(this);
myList .setOnChildClickListener(this);
//add a header
View addSummaryLayout = View.inflate(this, R.layout.add_summary, null);
groupedMultimediaListView.addHeaderView(addSummaryLayout);
myAdapter = new MyAdapter (this, uploadingMedias);
myList .setAdapter(myAdapter );
В какой-то момент мне нужно вызвать метод getChildView для myAdapter (расширяет BaseExpandableListAdapter), но я не могу использовать напрямую myAdapter, потому что у этого нет заголовка. Мне нужно сделать это через список. Я пытаюсь сделать это через getWrappedAdapter
HeaderViewListAdapter headerAdapter = ((HeaderViewListAdapter) myList .getAdapter());
((MyAdapter ) headerAdapter.getWrappedAdapter()).getChildView(0, i - 1, false, view, myList );
но он дает мне ClassCastException, android.widget.ExpandableListConnector не может быть добавлен в MyAdapter
Кто-нибудь знает, как получить исходный адаптер через методы списка?
Спасибо