android中,常用的适配器有, 1 ArrayAdapter:用来绑定一个数组,支持泛型操作 2 SimpleAdapter:用来绑定在xml中定义的控件对应的数据 3 SimpleCursorAdapte: 用来绑定游标得到的数据 4 BaseAdapter: 通用的基础适配器。本文就来讲讲SimpleAdapter编程。
首先定义一个xml文件,文件中定义了一个图标和一个TextViwe
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="4dip"
android:paddingLeft="12dip"
android:paddingRight="12dip" >
<ImageView
android:id="@+id/ItemImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:contentDescription="@string/set"
android:paddingTop="12dip" />
<TextView
android:id="@+id/ItemTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_toRightOf="@+id/ItemImage"
android:paddingLeft="12dip"
android:text=""
android:textColor="#000000"
android:textSize="20sp" />
</RelativeLayout>
在Activity的protected void onCreate(Bundle savedInstanceState)方法中,
ListView list_view = (ListView) view.findViewById(R.id.list_view);
SimpleAdapter adapter = new SimpleAdapter(getActivity(), initData(),// 数据源
R.layout.list_item,// ListItem的XML实现
// 动态数组与ImageItem对应的子项
new String[] { "ItemImage", "ItemTitle" },
// ImageItem的XML文件里面的一个ImageView,两个TextView ID
new int[] { R.id.ItemImage, R.id.ItemTitle });
list_view.setAdapter(adapter);
list_view.setOnItemClickListener(this);
可以看到有一个initData()函数,下面是该函数的源代码
private ArrayList<HashMap<String, Object>> initData() {
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> map1 = new HashMap<String, Object>();
map1.put("ItemImage", R.drawable.secretity);// 图像资源的ID
map1.put("ItemTitle", "常规设置");
list.add(map1);
HashMap<String, Object> map2 = new HashMap<String, Object>();
map2.put("ItemImage", R.drawable.system_picture);// 图像资源的ID
map2.put("ItemTitle", "系统设置");
list.add(map2);
HashMap<String, Object> map3 = new HashMap<String, Object>();
map3.put("ItemImage", R.drawable.custom);// 图像资源的ID
map3.put("ItemTitle", "用户设置");
list.add(map3);
return list;
}
然后就会有常规设置、系统设置、和用户设置列表出现,分别为三个列表添加点击事件
<pre name="code" class="java">@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
switch (position) {
case 0:
xxx...
break;
case 1:
xxx...
break;
case 2:
xxx...
break;
}
}