Créez d'abord une mise en page XML dans le fichier res/layout/main.xml
dossier :
<?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 mise en page simple avec un bouton en haut et une vue de liste en bas. Notez que le bouton ListView
a l'id @android:id/list
qui définit l'option par défaut ListView
a ListActivity
peut 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 par défaut des éléments de liste fournie par Android, et vous pouvez utiliser cette disposition de base pour les choses non complexes.
listItems
est une liste qui contient les données affichées dans le ListView. Toutes les insertions et suppressions doivent être effectuées sur listItems
; les changements dans listItems
doit être reflétée dans la vue. C'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 peut être votre activity/listactivity
la mise en page de l'élément de liste individuel ; et enfin, la liste, qui correspond aux données réelles à afficher dans la liste.
4 votes
La réponse de Shardul qui a obtenu le plus grand nombre de votes est considérée comme étant de haute qualité et les utilisateurs ont exprimé le souhait qu'elle soit acceptée. Pouvez-vous envisager de l'accepter ?