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 la addFooterView()
méthode
Ajoutez une vue fixe qui apparaîtra en bas de la liste. Si addFooterView()
est appelé plus d'une fois, les vues apparaîtront dans l'ordre dans lequel 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 soulignent un point très important -
addFooterView()
doit être appelé avant d'appeler setAdapter()
. C'est pour que ListView puisse envelopper le curseur fourni avec un curseur qui tiendra également compte des vues d'en-tête et de pied de page.
De Kitkat, cela a changé.
Remarque: 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 ListView n'étend pas HeaderViewListAdapter, il sera encapsulé avec une instance de prise en charge de WrapperListAdapter.
Documentation