0% ont trouvé ce document utile (0 vote)
55 vues9 pages

Android ListView : Guide XML et Adaptateurs

listview

Transféré par

hayderettir2001
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
55 vues9 pages

Android ListView : Guide XML et Adaptateurs

listview

Transféré par

hayderettir2001
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Exemple listview complexe :

Voici le code XML Android ListView :

<!-- Id of a list view uniquely identify it-->


<ListView
android:id="@+id/simpleListView" android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>

divider: Il s'agit d'un dessin ou d'une couleur à dessiner entre différents éléments de
la liste. Vous trouverez ci-dessous l'exemple de code de séparateur avec explication
incluse, où nous dessinons un séparateur de couleur rouge entre différentes vues
<!--Divider code in ListView-->
<ListView
android:id="@+id/simpleListView" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:divider="#f00"
android:dividerHeight="1dp"
/>

dividerHeight: Ceci spécifie la hauteur du séparateur entre les éléments de la liste.


Cela peut être en dp (pixel de densité), sp (pixel indépendant de l'échelle) ou px
(pixel).
1
4. listSelector: La propriété listSelector est utilisée pour définir le sélecteur de

listView. Il s'agit généralement de couleur orange ou bleu ciel, mais vous pouvez

Également définir votre couleur personnalisée ou une image sous forme de sélecteur

de liste selon votre conception.

Vous trouverez ci-dessous un exemple de code listSelector avec explication, où la


couleur du sélecteur de liste est verte, lorsque vous sélectionnez un élément de liste,
la couleur d'arrière-plan de cet élément est verte.

<!-- List Selector Code in ListView -->


<ListView
android:id="@+id/simpleListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="#f00"
android:dividerHeight="1dp"

android:listSelector="#0f0"/>
<!--list selector in green color-->

2
Utilisation des adaptateurs dans ListView :
1. Un adaptateur est un pont entre le composant de l'interface utilisateur et la

source de données qui nous aide à remplir les données dans le composant de

l'interface utilisateur. Il contient les données et les envoie à la vue de

l'adaptateur, puis la vue peut prendre les données de la vue de l'adaptateur et

afficher les données sur différentes vues telles que la vue de liste, la vue de

grille, la fileuse, etc.

2. ListView est une sous-classe de AdapterView et elle peut être remplie en se


liant à un adaptateur, qui récupère les données d'une source externe et crée
une vue qui représente chaque entrée de données.

3. Dans Android, les adaptateurs couramment utilisés sont :

 Array Adapter
 Base Adapter

Maintenant, nous expliquons ces deux adaptateurs en détail :


1.Array Adapter:

Chaque fois que vous disposez d’une liste d’éléments uniques soutenus par un

tableau, vous pouvez utiliser ArrayAdapter. Par exemple, une liste de


contacts

téléphoniques, de pays ou de noms.

Remarque importante : par défaut, ArrayAdapter attend une mise en page avec
un

seul TextView. Si vous souhaitez utiliser des vues plus complexes, cela signifie plus
de

personnalisation dans les éléments de la liste, veuillez éviter ArrayAdapter et utiliser

3
des adaptateurs personnalisés.

Vous trouverez ci-dessous le code de l'adaptateur:


ArrayAdapteradapter = new ArrayAdapter
<String>(this,R.layout.ListView,R.id.textVi
ew,StringArray
);

Step 1 :

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" android:orientation="horizontal">

4
<ImageView android:id="@+id/icon"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/ic_launcher
" />

<TextView
android:id="@+id/textView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="@dimen/activity_horizontal_margin"
android:textColor="@color/black" />
</LinearLayout>

Step 3 : Dans la troisième étape, nous utiliserons un adaptateur personnalisé pour


afficher les noms de pays dans l'interface utilisateur en codant MainActivity.java. Vous
trouverez ci-dessous le code de MainActivity.java
Remarque importante : assurez-vous que les images de drapeau sont stockées dans
un dossier drawble présent dans le dossier res avec un nom correct.

5
package com.abhiandroid.listbaseexample;

import android.app.Activity;
import android.os.Bundle;
import
android.widget.ListView;

public class MainActivity extends Activity {

ListView simpleList;
String countryList[] = {"India", "China", "australia", "Portugle",
"America", "New Zealand"};
int flags[] = {R.drawable.india, R.drawable.china, R.drawable.australia,
R.drawabl e.portugle, R.drawable.america, R.drawable.new_zealand};
@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
simpleList = (ListView) findViewById(R.id.simpleListView);
CustomAdapter customAdapter = new CustomAdapter(getApplicationContext(),
countryLi st, flags);
simpleList.setAdapter(customAdapter);
}
}

6
Exécutez maintenant’application
l dans’émulateur.
l Vous verrez l'écran de sortie
- ci

dessous où la liste des noms de pays sera


imprimée:

2.Base Adapter : BaseAdapter est une classe de base commune d'une


implémentation générale d'un adaptateur qui peut être utilisée dans ListView. Chaque
fois que vous avez besoin d'une liste personnalisée, vous créez votre propre
adaptateur et y étendez l'adaptateur de base. L'adaptateur de base peut être étendu
pour créer un adaptateur personnalisé permettant d'afficher un élément de liste
personnalisé. ArrayAdapter est également une implémentation de BaseAdapter.

Example de list view en utilisant Custom adapter(Base adapter):

Step 4: Créez maintenant un autre adaptateur personnalisé de classe qui étendra

BaseAdapter. Vous trouverez ci-dessous le code de CustomAdapter.java

package com.abhiandroid.listbaseexample;

7
import android.content.Context;
import android.media.Image;
import
android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import
android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.zip.Inflater;

public class CustomAdapter extends BaseAdapter {


Context context;
String countryList[];
int flags[];
LayoutInflater inflter;

public CustomAdapter(Context applicationContext, String[] countryList,


int[] flags
) {
this.context = context;
this.countryList = countryList;
this.flags = flags;
inflter = (LayoutInflater.from(applicationContext));
}

@Override
public int getCount() {
return countryList.length;
}

@Override
public Object getItem(int i) {
return null;
}

8
@Override public long
getItemId(int i) { return
0;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup)
{
view = inflter.inflate(R.layout.activity_listview, null);
TextView country = (TextView) view.findViewById(R.id.textView);
ImageView icon = (ImageView) view.findViewById(R.id.icon);
country.setText(countryList[i]);
icon.setImageResource(flags[i]);
return view;
}
Output:Exécutez maintenant l’application dans l’émulateur et elle vous montrera le
nom des pays ainsi que les drapeaux. Ci-dessous se trouve l'écran de sortie :

Vous aimerez peut-être aussi