adapter是android中一个重要的内容,很多的控件都要用到它来作为数据源。本程序使用了一个simpleAdapter作为listView的数据源。
布局文件里包括一个listView和显示在listView中的ImageView和textView。
<?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"
>
<!-- 定义一个List -->
<ListView android:id="@+id/mylist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<!-- 定义一个ImageView,用于作为列表项的一部分。 -->
<ImageView android:id="@+id/header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
/>
<!-- 定义一个TextView,用于作为列表项的一部分。 -->
<TextView android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:gravity="center_vertical"
android:paddingLeft="10dp"
/>
</LinearLayout>
用list、ImageVIew和textView来构造simpleAdapter。
public class SimpleAdapterTest extends Activity
{
private String[] names = new String[]
{ "风筝", "完美的一天", "是时候", "stefanie"};
private int[] imageIds = new int[]
{ R.drawable.sunyz_1 , R.drawable.sunyz_6
, R.drawable.sunyz_7 , R.drawable.sunyz_8};
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//创建一个List集合,List集合的元素是Map
List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();
for (int i = 0; i < names.length; i++)
{
Map<String, Object> listItem = new HashMap<String, Object>();
listItem.put("CDs", imageIds[i]);
listItem.put("CDname", names[i]);
listItems.add(listItem);
}
//创建一个SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(this
, listItems
, R.layout.main
, new String[]{ "CDname", "CDs" }
, new int[]{R.id.name , R.id.header});
ListView list = (ListView)findViewById(R.id.mylist);
//为ListView设置Adapter
list.setAdapter(simpleAdapter);
}
}