Maison  >  Article  >  Java  >  Comment personnaliser les éléments de ligne dans une liste Android : un guide étape par étape ?

Comment personnaliser les éléments de ligne dans une liste Android : un guide étape par étape ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-29 04:22:02987parcourir

How to Customize Row Items in an Android ListView: A Step-by-Step Guide?

Création d'éléments de ligne personnalisés pour une liste Android : un guide détaillé

Dans cet article, nous explorerons comment créer des éléments de ligne personnalisés pour un ListView dans une application Android.

Le défi

Nous avons un ListView qui nécessite des lignes avec la disposition suivante :

HEADER
Text

Le Le texte "HEADER" reste statique, tandis que le contenu "Texte" change dynamiquement.

L'approche initiale

Au départ, nous avons essayé de remplir un tableau de chaînes, en le passant à un ArrayAdapter, et en le définissant à chaque fois que les données changeaient :

data_array = populateString();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1,  data_array);
listView.setAdapter(adapter);

Cependant, cette approche n'a pas fourni le résultat souhaité car la mise en page existante ne pouvait pas afficher les données dans le format spécifié.

La disposition des lignes personnalisée

Pour surmonter cette limitation, nous allons créer une disposition personnalisée pour les éléments de ligne :

row.xml :

<code class="xml"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Header"/>

    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/text"/>
    
</LinearLayout></code>

La mise en page XML principale

Ensuite, ajustez la mise en page XML principale pour inclure ListView :

<code class="xml"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

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

</LinearLayout></code>

L'adaptateur

On définit maintenant l'adaptateur :

<code class="java">class yourAdapter extends BaseAdapter {

    // ... (the adapter code) ...
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // ... (customizing view) ...
        TextView text = (TextView) vi.findViewById(R.id.text);
        text.setText(data[position]);
        return vi;
    }
}</code>

L'activité Java

Enfin, dans l'activité Java :

<code class="java">public class StackActivity extends Activity {

    // ... (the activity code) ...
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        // ... (setting up listview) ...
        listview.setAdapter(new yourAdapter(this, new String[] { "data1", "data2" }));
    }
}</code>

En suivant ces étapes, vous pouvez créer des éléments de ligne personnalisés pour un ListView, permettant plus de flexibilité et de personnalisation dans la présentation de vos données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn