Question

Je développe une application, Dans ma demande, j'utilise Listview pour afficher des données en utilisant l'analyse syntaxique dom, je veux pied dans listview, quand je clique sur pied plus de données supplémentaires ajouter à la vue de la liste, j'attachais l'image, je voudrais que la conception et le processus, s'il vous plaît se référer image1 et pied de page de mention imgae2.I dans le rectangle rouge

Fig1-pied comme "Plus Nouvelles" text alt

text alt

Fig2-Ajouter 10 enregistrement ajouté dans listview supplémentaire

Était-ce utile?

La solution

Créer une mise en page de vue de pied composé de texte que vous souhaitez définir comme pied de page et puis essayez

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

Mise en page pour le pied de page pourrait être quelque chose comme ceci:

<?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 classe d'activité pourrait être:

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

Autres conseils

Je sais que c'est une question très ancienne, mais je googlé mon chemin ici et a trouvé la réponse fournie non 100% satisfaisant, parce que Gcl1 mentionné - cette façon, le pied de page n'est pas vraiment un pied de page à l'écran - il est juste un " add-on » à la liste.

Bottom line - pour les autres qui peuvent google leur chemin ici - je l'ai trouvé ici la suggestion suivante: pied fixe et toujours visible ci-dessous ListFragment

Essayez de faire comme suit, où l'accent est mis sur le bouton (ou tout élément de pied de page) apparaît en premier dans le fichier XML - et la liste est ajouté comme « 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>

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

Info sur la méthode de addFooterView()

  

Ajouter une vue fixe à apparaître au bas de la liste. Si addFooterView() est appelé plus d'une fois, les vues apparaissent dans l'ordre où ils ont été ajoutés. Vues ajoutées en utilisant cet appel peut prendre le focus s'ils veulent.

La plupart des réponses ci-dessus le stress point très important -

  

addFooterView() doit être appelée avant d'appeler setAdapter().This est si ListView peut envelopper le curseur avec qui fourni représentera aussi pour les vues d'en-tête et pied de page.

De KitKat a changé.

  

Remarque: Lorsque la première, cette méthode ne peut être appelée avant de l'adaptateur avec setAdapter (ListAdapter). A partir de KITKAT, cette méthode peut être appelée à tout moment. Si l'adaptateur de ListView ne couvre pas HeaderViewListAdapter, il sera enveloppé d'une instance de soutien WrapperListAdapter.

Documentation

Si le ListView est un enfant du ListActivity:

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

(onCreate intérieur ())

L'activité dans laquelle vous souhaitez ajouter un pied de page listview et je dois générer également un événement sur le clic de bas de page listview.

  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>

Dans cette question, la meilleure réponse fonctionne pas pour moi. Après que j'ai trouvé cette méthode pour montrer le pied listview,

LayoutInflater inflater = getLayoutInflater();
ViewGroup footerView = (ViewGroup)inflater.inflate(R.layout.footer_layout,listView,false);
listView.addFooterView(footerView, null, false);

Et créer un nouveau footer_layout d'appel de mise en page

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Done"
        android:textStyle="italic"
        android:background="#d6cf55"
        android:padding="10dp"/>
</LinearLayout>

Si le travail ne consulter cet article entendre

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top