尝试在ListFragment的List上添加标头时遇到问题。我听说我必须在setListAdapter之前添加标题视图(我遵循了这个主题Best place to addHeaderView in ListFragment),但是,它仍然无法正常工作。

这是我的代码:

@Override
public void onActivityCreated (Bundle savedInstanceState)
{
    Log.i(General.TAG, "beginning of onActivityCreated");
    super.onActivityCreated(savedInstanceState);
    if (mheaderView != null)  this.getListView().addHeaderView(getView().findViewById(R.layout.header)); // <= mheaderView is not null
    ListView lv = getListView(); // <= lv is not null

    lv.setAdapter(adapter);
    Log.i(General.TAG, "end of onActivityCreated");
}


"lv.setAdapter(adapter)"行上生成的堆栈跟踪就是这样的:

   02-06 16:16:37.226: E/AndroidRuntime(25838): **java.lang.NullPointerException**
   02-06 16:16:37.226: E/AndroidRuntime(25838):     at android.widget.ListView.clearRecycledState(ListView.java:497)
   02-06 16:16:37.226: E/AndroidRuntime(25838):     at android.widget.ListView.resetList(ListView.java:483)
   02-06 16:16:37.226: E/AndroidRuntime(25838):     at android.widget.ListView.setAdapter(ListView.java:426)
   02-06 16:16:37.226: E/AndroidRuntime(25838):     at fr.pack.DetailFragment.onActivityCreated(DetailFragment.java:75)


但是适配器不为null,mHeaderView也不为空。您对我可能犯的错误有任何线索吗?提前致谢 !

最佳答案

我相信您的问题出在addHeaderView上,您可能缺少将视图放到方法上之前将其膨胀的想法。
我不希望有任何疑问,我只遇到了相同的问题,并且发现了您的问题以及似乎也可以解决您的问题的类似问题:

Android adding footer to ListView addFooterView()?

希望能帮助到你

07-26 08:38