Ответы здесь немного устарели. Хотя код остался прежним, есть некоторые изменения в поведении.
public class MyListActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
TextView footerView = (TextView) ((LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_view, null, false);
getListView().addFooterView(footerView);
setListAdapter(new ArrayAdapter<String>(this, getResources().getStringArray(R.array.news)));
}
}
Информация о addFooterView()
методе
Добавьте фиксированный вид, который будет отображаться в нижней части списка. Если addFooterView()
вызывается более одного раза, представления будут отображаться в том порядке, в котором они были добавлены. Представления, добавленные с помощью этого вызова, могут получить фокус, если захотят.
Большинство приведенных выше ответов подчеркивают очень важный момент -
addFooterView()
должен быть вызван перед вызовом. setAdapter()
Это значит, что ListView может обернуть предоставленный курсор курсором, который также будет учитывать представления верхнего и нижнего колонтитула.
С Китката это изменилось.
Примечание. При первом появлении этот метод можно было вызвать только перед установкой адаптера с помощью setAdapter (ListAdapter). Начиная с KITKAT, этот метод можно вызывать в любое время. Если адаптер ListView не расширяет HeaderViewListAdapter, он будет заключен в оболочку с поддерживающим экземпляром WrapperListAdapter.
Документация