He creado un ListView y agrega encabezado con addHeaderView, entonces llamé a setListAdapter en mi ListActivity. ¿Alguna idea de cómo puedo dinámicamente addFooterView después de haber llamado a setListAdapter?

RESPUESTA:
He añadido tanto a la vista de encabezamiento y pie de página vista (en realidad botones) en la vista de lista,
pero ambos de ellos me envolvieron en un FrameLayout utilizando wrap_content altura, cuando el yo no necesita ser el encabezado de botón de muestra acabo de setVisibility(Ver.Se ha IDO) y FrameLayout se ajusta a 0 altura y vissualy no es visible (el mismo efecto como si yo llamaría removeHeaderView), y si necesito mostrar de nuevo me setVisibilty(Ver.VISIBLE) y se muestra (mismo efecto que addHeaderView – que por supuesto no es posible después de llamar a lista de configuración de adaptador)

Discutido aquí:
Ocultar pie de página vista en la vista de lista?

  • mira mi editrd respuesta. intente esto y me dejó saber lo que pasa.
InformationsquelleAutor webaloman | 2011-09-25

2 Comentarios

  1. 4
    View 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));
    • 09-25 18:43:52.953: ERROR/AndroidRuntime(229): java.lang.IllegalStateException: No se puede agregar pie de página de la vista de lista — setAdapter ya ha sido llamado.
    • mira mis editado respuesta. intente esto y me dejó saber lo que pasa.
    • Sólo recuerde que el pie de página y encabezado también son indexados como un elemento de la lista. Por lo tanto, Si usted haga clic en el primer elemento de la lista de abajo el pie de página, el elemento de índice será 1, pero no a 0.
  2. 0

    Usted Tiene que hacer como esta

    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);

Dejar respuesta

Please enter your comment!
Please enter your name here