2013-02-19 44 views
0

我想加载与加载器的MergeAdapter。我将适配器添加到onLoadFinhed回调上的MergeAdapter,但ListView显示为空。我注意到自定义适配器的getview方法未被调用。MergeAdapter与AsyncTaskLoader

我运行相同的自定义适配器相同的代码和效果很好,但我需要添加标题到ListView。

MergeAdapter适用于装载机?

一些代码:

我将TE适配器:

@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

在调用setListAdapter()将MergeAdapter与ListView关联之前,必须将内容倒入MergeAdapter。此限制是必需的,因为Android只调用一次getViewTypeCount(),添加更多视图或适配器会添加更多视图类型。

+0

我添加意见和适配器上的“onActivityCreated”方法,然后我设定为“onLoadFinished”的数据。谢谢!!! – ikarius 2013-02-19 14:49:46