РЕДАКТИРОВАТЬ:
вы просто не можете сделать
View header = findViewById(R.layout.headerView);
lst.addHeaderView(header);
Это НЕ будет работать , потому что представление, которое передается в has to be inflated
.В двух словах, когда вы делаете setContentView
в начале своей деятельности , платформа Android автоматически раздувает представление и использует его для использования .Чтобы раздуть представление заголовка, все что вам нужно сделать - это, наконец,
View header = (View)getLayoutInflater().inflate(R.layout.headerView,null);
ls.addHeaderView(header);
, добавить адаптер после того, как вы настроили представление заголовка и запустить приложение.Вы должны увидеть заголовок с содержимым, которое вы вставили в адаптер.
В моем случае это работает
View header = getLayoutInflater().inflate(R.layout.header, null);
View footer = getLayoutInflater().inflate(R.layout.footer, null);
ListView listView = getListView();
listView.addHeaderView(header);
listView.addFooterView(footer);
setListAdapter(new ArrayAdapter<String(this,android.R.layout.simple_list_item_single_choice,android.R.id.text1, names));