Erstellen Sie zunächst ein XML-Layout in Ihrem Projekt res/layout/main.xml
Ordner:
<?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>
Es handelt sich um ein einfaches Layout mit einer Schaltfläche im oberen Bereich und einer Listenansicht im unteren Bereich. Beachten Sie, dass die ListView
hat die id @android:id/list
die den Standard ListView
a ListActivity
verwenden können.
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 Standard-Listenelement-Layout, das von Android bereitgestellt wird, und Sie können dieses Standard-Layout für nicht-komplexe Dinge verwenden.
listItems
ist eine Liste, die die in der ListView angezeigten Daten enthält. Alle Einfüge- und Löschvorgänge sollten auf listItems
die Änderungen in listItems
sollte sich in der Ansicht widerspiegeln. Das wird von ArrayAdapter<String> adapter
die mit zu melden sind:
adapter.notifyDataSetChanged();
Ein Adapter wird mit 3 Parametern instanziiert: der Kontext, der Ihr activity/listactivity
das Layout der einzelnen Listenelemente und schließlich die Liste, d. h. die Daten, die in der Liste angezeigt werden sollen.