Dynamic List Activity

From John Freier
Jump to: navigation, search

This is some example code to use ArrayList and attach it to the List view using the ArrayAdapter.

One thing I didn't know, is you could use ArrayList.

When you change the data in the ArrayList use adapter.notifyDataSetChanged() to update the list.

public class TopActivity  extends ListActivity
{
     private ArrayAdapter<String> adapter;
     private ArrayList<String> list;

     public void onCreate(Bundle savedInstanceState) 
     {
          super.onCreate(savedInstanceState);

          this.list = new ArrayList<String>();
          adapter = new ArrayAdapter<String>(this, R.layout.top, this.list);
          setListAdapter(adapter);

          //not for sure if I need the below.
          //ListView lv = getListView();
          //lv.setTextFilterEnabled(true);

          addItem();

     }

     public void addItem()
     {
          this.list.add("Two");
          adapter.notifyDataSetChanged();
     }
}


Your Layout should look like this...

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp" android:textStyle="bold" android:textSize="20sp" android:textColor="#ffffff">
</TextView>

Error - If you get the error, something along the lines of R.id.list is not in the content. Remove the setContentView method, you don't need it