Erstellen Sie zuerst ein XML-Layout im res/layout/main.xml
Ordner Ihres Projekts :
<?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>
Dies ist ein einfaches Layout mit einer Schaltfläche oben und einer Listenansicht unten. Beachten Sie, dass der ListView
die ID hat, @android:id/list
die den Standard definiert, den ListView
a verwenden ListActivity
kann.
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
ist das Standardlayout für Listenelemente, das von Android bereitgestellt wird, und Sie können dieses Bestandslayout für nicht komplexe Dinge verwenden.
listItems
ist eine Liste, die die in der ListView angezeigten Daten enthält. Das Einsetzen und Entfernen sollte am erfolgen listItems
. Die Änderungen in listItems
sollten sich in der Ansicht widerspiegeln. Das wird erledigt von ArrayAdapter<String> adapter
, was benachrichtigt werden sollte mit:
adapter.notifyDataSetChanged();
Ein Adapter wird mit 3 Parametern instanziiert: dem Kontext, der Ihr sein könnte activity/listactivity
; das Layout Ihres individuellen Listenelements; und schließlich die Liste, bei der es sich um die tatsächlichen Daten handelt, die in der Liste angezeigt werden sollen.