Come aggiungere un piè di pagina in ListView?

Sto sviluppando un'applicazione, nella mia applicazione sto usando Listview per la visualizzazione dei dati utilizzando l'analisi dom, voglio piantare in listview, quando faccio clic su piè di pagina aggiuntivo altri dati aggiungono alla vista elenco, ho allegato image, vorrei che design e process, si prega di riferirsi image1 e imgae2.I menzione footer in rettangolo rosso

Fig1-Piè di pagina come "Altre notizie"
alt text

  • Android Studio - non riesce semplicemente a get la barra di azione / il trabocco per funzionare?
  • L'icona dell'applicazione non viene visualizzata sulla barra delle azioni
  • Android, Come dividere gli elementi ListView in tre parti?
  • Imposta la posizione / dimensione dell'elemento UI come percentuale della dimensione dello schermo
  • Android SoundPool.play () a volte ritarda
  • Richiedere le autorizzazioni di runtime da v4.Fragment e avere il callback andare a Frammento?
  • alt text

    Fig2-Aggiungere altri 10 record aggiunti in listview

  • Utilizzo di javamail per submit da hotmail?
  • Problemi con la camera in onActivityResult
  • C'è un modo per get hash chiave da APK firmato?
  • BadTokenException
  • Errore manifesto di fusione manifesta
  • Esecuzione di un'applicazione mappa google su Android Emulator
  • 5 Solutions collect form web for “Come aggiungere un piè di pagina in ListView?”

    Creare un layout di visualizzazione piè di pagina che consiste di text che si desidera impostare come piè di pagina e quindi provare

    View footerView = ((LayoutInflater) ActivityContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false); ListView.addFooterView(footerView); 

    Il layout per il piè di pagina potrebbe essere qualcosa di simile:

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="7dip" android:paddingBottom="7dip" android:orientation="horizontal" android:gravity="center"> <LinearLayout android:id="@+id/footer_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" android:layout_gravity="center"> <TextView android:text="@string/footer_text_1" android:id="@+id/footer_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="14dip" android:textStyle="bold" android:layout_marginRight="5dip" /> </LinearLayout> </LinearLayout> 

    La class di attività potrebbe essere:

     public class MyListActivty extends ListActivity { private Context context = null; private ListView list = null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); list = (ListView)findViewById(android.R.id.list); //code to set adapter to populate list View footerView = ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false); list.addFooterView(footerView); } } 

    So che questa è una domanda molto vecchia, ma ho scoperto la mia strada qui e ho trovato la risposta fornita non soddisfacente del 100%, perché come ha detto gcl1 – in questo modo il piè di pagina non è davvero un footer sullo schermo – è solo un "add-on" "alla list.

    Bottom line – per altri che possono andare in Google qui – ho trovato qui il seguente suggerimento: Piè di pagina fisso e sempre visibile sotto ListFragment

    Provate a fare quanto segue, where l'accento è sul button (o qualsiasi elemento di piè di pagina) elencato prima nell'XML – e quindi l'elenco viene aggiunto come "layout_above":

     <RelativeLayout> <Button android:id="@+id/footer" android:layout_alignParentBottom="true"/> <ListView android:id="@android:id/list" **android:layout_above**="@id/footer"> <!-- the list --> </RelativeLayout> 

    Le risposte qui sono un po 'obsolete. Anche se il codice rimane lo stesso, ci sono alcune modifiche nel comportmento.

     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.arrays.news))); } } 

    Informazioni sul metodo addFooterView()

    Aggiungere una vista fissa per comparire nella parte inferiore dell'elenco. Se addFooterView() viene chiamato più volte, le viste appariranno nell'ordine in cui sono state aggiunte. Le viste aggiunte utilizzando questa chiamata possono concentrarsi se vogliono.

    La maggior parte delle risposte sopra stress un punto molto importnte –

    deve essere chiamato setAdapter() prima di call setAdapter() . Quindi è così che ListView può avvolgere il cursore fornito con quello che includerà anche le viste di intestazione e di piè di pagina.

    Da Kitkat questo è cambiato.

    Nota: quando viene presentato per la prima volta, questo metodo potrebbe essere chiamato solo prima di impostare la scheda con setAdapter (ListAdapter). A partire da KITKAT, questo metodo può essere richiamato in qualsiasi momento. Se la scheda di ListView non estende HeaderViewListAdapter, verrà avvolta con un'istanza di supporto di WrapperListAdapter.

    Documentazione

    Se il ListView è un figlio della ListActivity:

     getListView().addFooterView( getLayoutInflater().inflate(R.layout.footer_view, null) ); 

    (all'interno di onCreate ())

    L'attività in cui si desidera aggiungere il piè di pagina di visualizzazione e ho anche generato un evento sul click di piè di pagina di visualizzazione.

      public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView list_of_f = (ListView) findViewById(R.id.list_of_f); LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.web_view, null); // i have open a webview on the listview footer RelativeLayout layoutFooter = (RelativeLayout) view.findViewById(R.id.layoutFooter); list_of_f.addFooterView(view); } } 

    activity_main.xml

     <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bg" > <ImageView android:id="@+id/dept_nav" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/dept_nav" /> <ListView android:id="@+id/list_of_f" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/dept_nav" android:layout_margin="5dp" android:layout_marginTop="10dp" android:divider="@null" android:dividerHeight="0dp" android:listSelector="@android:color/transparent" > </ListView> </RelativeLayout> 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.