As respostas aqui estão um pouco desatualizadas. Embora o código permaneça o mesmo, há algumas mudanças no comportamento.
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)));
}
}
Informações sobre o addFooterView()
método
Adicione uma visualização fixa para aparecer na parte inferior da lista. Se addFooterView()
for chamado mais de uma vez, as visualizações aparecerão na ordem em que foram adicionadas. As visualizações adicionadas por meio desta chamada podem ter foco, se quiserem.
A maioria das respostas acima enfatiza um ponto muito importante -
addFooterView()
deve ser chamado antes de chamar setAdapter()
. Isso é para que ListView possa envolver o cursor fornecido com um que também levará em conta as visualizações de cabeçalho e rodapé.
De Kitkat isso mudou.
Nota: Quando introduzido pela primeira vez, este método só poderia ser chamado antes de configurar o adaptador com setAdapter (ListAdapter). A partir do KITKAT, este método pode ser chamado a qualquer momento. Se o adaptador do ListView não estender HeaderViewListAdapter, ele será encapsulado com uma instância de suporte de WrapperListAdapter.
Documentação