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!