1.3. Adapters
An
adapters
manages the data model and adapts it to the individual rows in the
list view. An adapter extend the
BaseAdapter
class.
Every line in the list view consists of a layout which can
be as
complex as you want. A typical line in a list view has an image
on
left side and two text lines in the middle as depicted in the
following graphic.
A layout file for a such a line might look like the following.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_marginRight="6dip"
android:contentDescription="TODO"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/secondLine"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_toRightOf="@id/icon"
android:ellipsize="marquee"
android:singleLine="true"
android:text="Description"
android:textSize="12sp" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@id/secondLine"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_alignWithParentIfMissing="true"
android:layout_toRightOf="@id/icon"
android:gravity="center_vertical"
android:text="Example application"
android:textSize="16sp" />
</RelativeLayout>
The adapter would inflate the layout for each row in its
getView()
method
and assign the data to the individual views in the row.
The adapter is assigned to the
ListView
via the
setAdapter
method on the
ListView
object.
Filtering and sorting of the data is handled by the adapter. You
need to
implement the logic in your custom adapter implementation.
No comments:
Post a Comment