Les réponses ici sont un peu dépassées. Bien que le code reste le même, il y a quelques changements dans le comportement.
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)));
}
}
Informations sur addFooterView()
méthode
Ajouter une vue fixe pour apparaître en bas de la liste. Si addFooterView()
est appelé plus d'une fois, les vues apparaîtront dans l'ordre où elles ont été ajoutées. Les vues ajoutées à l'aide de cet appel peuvent prendre le focus si elles le souhaitent.
La plupart des réponses ci-dessus mettent l'accent sur un point très important.
addFooterView()
doit être appelé avant d'appeler setAdapter()
Cela permet à ListView d'envelopper le curseur fourni avec un autre qui tiendra également compte des vues d'en-tête et de pied de page.
Depuis Kitkat, cela a changé.
Note : Lors de sa première introduction, cette méthode ne pouvait être appelée qu'avant de définir l'adaptateur avec setAdapter(ListAdapter). À partir de KITKAT, cette méthode peut être appelée à tout moment. Si l'adaptateur de la ListView n'étend pas HeaderViewListAdapter, il sera enveloppé avec une instance de WrapperListAdapter.
Documentation