2013-05-23 2 views
0

У меня есть пользовательский адаптер, который я обернул адаптером cwac-Endless. Я пытаюсь получить доступ к методу базового MyListAdapter адаптера, но я, получающего ClassCastException:ClassCastException. Как получить доступ к базовому адаптеру?

MyListAdapter ls1 = (MyListAdapter) listview1.getAdapter(); 

Если изменить оттенок и ls1 от MyListAdapter к EndlessAdapter я тогда не может решить метод, который я хочу от MyListAdapter.

Любые идеи?

Update Вот как я оборачивать адаптер

listview1.setAdapter(new EndlessAdapter(MainActivity.this, 
      new MyListAdapter(MainActivity.this, couchDbConnector, viewQuery))); 
+0

ваш завернутые адаптер с cwac-безграничны, вы можете разместить код –

+0

Как вы оберточной пользовательский адаптер с 'cwac-Endless' адаптер? – asloob

+1

'listview1.getAdapter()' должен возвращать оболочку. Если вы завернули его, вам нужно развернуть его, чтобы получить доступ к пользовательским методам. –

ответ

0

Вам нужно разворачивать адаптер:

EndlessAdapter ea = (EndlessAdapter) listview1.getAdapter(); // the cast may not be necessary 
MyListAdapter ls1 = (MyListAdapter) ea.getWrappedAdapter(); 
+0

А я думал, что это сработает, но получило: 'java: getWrappedAdapter() защитил доступ в com.commonsware.cwac.adapter.AdapterWrapper' – KingFu

+0

Если вы расширите' EndlessAdapter', вы можете добавить открытый метод, чтобы получить обернутый адаптер. Или, возможно, вам больше не нужен обернутый адаптер, если вы расширяете «EndlessAdapter» ... –

0

метод getWrappedAdapter() должен сделать это для вас.

+0

Я предполагаю, что мне все равно нужно сделать адаптер переменной-членом, если я сделаю ваше предложение, поскольку listview1 не знает о getWrapedAdapter() – KingFu

+0

try ((EndlessAdapter) listview1) .getWrappedAdapter() – GreyBeardedGeek

+0

спасибо, но получите «ошибку неконвертируемого типа», не может использовать android.widget.ListView для com.my.app.EndlessAdapter', может быть, я просто использую переменную экземпляра и сберегу себе скорбь! – KingFu

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