J'ai créé un ListView
et ajouté en-tête avec addHeaderView
, alors j'ai appelé setListAdapter
dans mon ListActivity
. Toute idée de comment puis-je dynamiquement addFooterView
après avoir appelé setListAdapter
?
RÉPONSE: J'ai ajouté la vue en-tête et la vue en pied de page (en fait, des boutons) dans la vue liste, mais tous les deux j'ai enveloppé dans un FrameLayout en utilisant wrap_content height, puis quand je n'ai pas besoin d'être le bouton d'en-tête pour être affiché, je viens de mettreVisibility (View.GONE) et FrameLayout s'enroule à 0 hauteur et vissualy, il n'est pas visible (même effet comme si j’appellerais removeHeaderView), et si j’ai besoin de le montrer à nouveau, je mets setVisibilty (View.VISIBLE) et il est affiché (même effet que addHeaderView - ce qui n’est bien sûr pas possible après avoir appelé un adaptateur de liste de paramétrage)
Discuté ici: Masquer la vue de pied de page dans ListView?
Réponses:
4 pour la réponse № 1View 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));
0 pour la réponse № 2
Tu dois faire comme ça
View header = (View)getLayoutInflater().inflate(R.layout.header,null);
SimpleAdapter myAdapter=new SimpleAdapter(this,myList,R.layout.transactionvalues,
new String[] {"transaction_date_time","user_name","site_name","machine_name"},new int[] {R.id.Date_Time,R.id.User,R.id.Site,R.id.Machine});
if(header == null){
lst.removeHeaderView(header);
}else
{
lst.addHeaderView(header,null,false);
}
lst.setAdapter(myAdapter);