ListActivity
ListActivity is extension of Activity.
It has useful methods to create items of ListView.
Certainly, we don’t need to use ListActivity to add items to ListView.
But if you use ListView in your Activity, you consider use of ListActivity.
Simple Sample
List Item Layout(row.xml)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <ImageView android:id="@+id/icon" android:padding="2dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/heart" android:contentDescription="heart" /> <TextView android:id="@+id/label" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="40sp"/> </LinearLayout>
Main Layout(listexample.xml)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/selection" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="false" android:choiceMode="multipleChoice"/> </LinearLayout>
This has text and listview.
Code
public class ImageListActivity extends ListActivity { TextView selection; private static final String[] items = {"Mayuyu", "Paruru", "Rena", "Kojiharu", "Takamina", "Yuko", "Mariko"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listexample); setListAdapter(new ArrayAdapter<String>(this, R.layout.row, R.id.label, items)); selection = (TextView)findViewById(R.id.selection); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { selection.setText(items[position]); } }
Result
Runtime Change Sample
Code
public class DynamicList extends ListActivity { private static final String[] items = {"Mayuyu", "Paruru", "Rena", "Kojiharu", "Takamina", "Yuko", "Mariko"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listexample); setListAdapter(new IconicAdapter()); } class IconicAdapter extends ArrayAdapter<String> { IconicAdapter() { super(DynamicList.this, R.layout.row, R.id.label, items); // R.id.label : row's TextView } public View getView(int position, View convertView, ViewGroup parent ) { View row = super.getView(position, convertView, parent); ImageView icon = (ImageView)row.findViewById(R.id.icon); if ( items[position].length() > 5 ) { icon.setImageResource(R.drawable.spade); } else { icon.setImageResource(R.drawable.heart); } return (row); } } }