Créez d'abord une disposition XML dans le res/layout/main.xmldossier de votre projet :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/addBtn"
android:text="Add New Item"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="addItems"/>
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
/>
</LinearLayout>
Il s'agit d'une disposition simple avec un bouton en haut et une vue de liste en bas. Notez que le ListViewa l'identifiant @android:id/listqui définit la valeur ListViewpar défaut qu'un ListActivitypeut utiliser.
public class ListViewDemo extends ListActivity {
//LIST OF ARRAY STRINGS WHICH WILL SERVE AS LIST ITEMS
ArrayList<String> listItems=new ArrayList<String>();
//DEFINING A STRING ADAPTER WHICH WILL HANDLE THE DATA OF THE LISTVIEW
ArrayAdapter<String> adapter;
//RECORDING HOW MANY TIMES THE BUTTON HAS BEEN CLICKED
int clickCounter=0;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
adapter=new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
listItems);
setListAdapter(adapter);
}
//METHOD WHICH WILL HANDLE DYNAMIC INSERTION
public void addItems(View v) {
listItems.add("Clicked : "+clickCounter++);
adapter.notifyDataSetChanged();
}
}
android.R.layout.simple_list_item_1 est la disposition des éléments de liste par défaut fournie par Android, et vous pouvez utiliser cette disposition de stock pour les choses non complexes.
listItemsest une liste qui contient les données affichées dans le ListView. Toute l'insertion et le retrait doivent être effectués listItems; les changements dans listItemsdoivent être reflétés dans la vue. Cela est géré par ArrayAdapter<String> adapter, qui doit être notifié en utilisant:
adapter.notifyDataSetChanged();
Un adaptateur est instancié avec 3 paramètres: le contexte, qui pourrait être le vôtre activity/listactivity; la disposition de votre élément de liste individuel; et enfin, la liste, qui est les données réelles à afficher dans la liste.