天天看点

android中SimpleAdapter的编程实例

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;
		}

	}