2013-02-19 3 views
0

Я хочу загрузить MergeAdapter с помощью Loader. Я добавляю адаптеры к MergeAdapter при обратном вызове onLoadFinihed, но ListView выглядит пустым. Я заметил, что метод getview пользовательского адаптера не вызывается.MergeAdapter с AsyncTaskLoader

Я запускаю тот же код с тем же пользовательским адаптером и хорошо работает, но мне нужно добавить заголовки в ListView.

MergeAdapter работает с загрузчиком?

Некоторый код:

Я установил тэ адаптер:

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 

    setEmptyText(getString(R.string.raceList_empty)); 

    mAdapter = new MergeAdapter(); 
    setListAdapter(mAdapter); 
    getLoaderManager().initLoader(0, null, this).forceLoad(); 
} 

А потом на onLoadFinihed:

@Override 
public void onLoadFinished(Loader<List<Race>> loader, List<Race> data) { 

    LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View headerView = inflater.inflate(R.layout.race_header_row, null); 
    mAdapter.addView(headerView, true); 

    RaceAdapter activeAdapter = new RaceAdapter(getActivity()); 

    activeAdapter.setData(data); 

    mAdapter.addAdapter(activeAdapter); 
} 

ответ

2

MergeAdapter работает Погрузчики?

Не так, как вы это делаете. Цитирование the current edition of the documentation's "Timing" section:

Вы должны вылить содержимое в MergeAdapter перед вызовом setListAdapter(), чтобы связать MergeAdapter с ListView. Это ограничение требуется, потому что Android только вызывает getViewTypeCount() один раз, и добавление большего количества просмотров или адаптеров добавляет больше типов просмотра.

+0

Я добавляю виды и адаптеры по методу onActivityCreated, а затем устанавливаю данные на «onLoadFinished». Благодаря!!! – ikarius

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