Android - ListActivity,添加页眉和页脚视图

Vic*_*tor 2 android header footer listactivity

我正在使用ListActivity,listview.

listView = getListView();
Run Code Online (Sandbox Code Playgroud)

只是工作得很好.我添加了页脚视图

LayoutInflater inflater = getLayoutInflater();
listView.addFooterView( inflater.inflate( R.layout.footer, null ), null, false);
Run Code Online (Sandbox Code Playgroud)

一切都很闪亮但很难看,所以我想把这个页脚视图(只包含1个edittext,只有1个按钮)添加到listView的标题中

LayoutInflater inflater = getLayoutInflater();
listView.addHeaderView( inflater.inflate( R.layout.footer, null ), null, false);
Run Code Online (Sandbox Code Playgroud)

突然一切都出错了,我立即得到了RuntimeException.

Suspended(exception RuntimeException)
ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord, Intent)
ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord, Intent)
ActivityThread.access$2200(ActivityThread, Activity$ActiviyRecord, Intent),
so on..
Run Code Online (Sandbox Code Playgroud)

它为什么抛出异常?addFooterView和addHeaderView之间有什么不同,我如何将标题添加到ListActivity?

UPDATE

因此,您可以在评论中阅读,我的logcat仍然无法正常工作,但此时我只是尝试了下一步:

} catch(Exception e){ 
  Writer result = new StringWriter(); 
  PrintWriter printWriter = new PrintWriter(result);
  e.printStackTrace(printWriter);
  String error = result.toString(); 
}
Run Code Online (Sandbox Code Playgroud)

然后我把断点,我可以在表达式部分读取错误.它说 :

java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called. 
Run Code Online (Sandbox Code Playgroud)

这对我们所有人都很有启发.在更改了一些命令之后,它会更好地工作.

ant*_*afe 11

当你记录

java.lang.IllegalStateException:无法将标题视图添加到列表 - 已调用setAdapter.

ListView的方法addHeaderViewaddFooterView必须之前调用setAdapter.