public SimpleAdapter (Context context, List<?extends Map<String,?>> data, int resource, String[]from, int[] to);
这是构造函数.
context是在何处运行这个adapt一般写thisdata 是一个list集合类引用.这个集合类元素是map 集合类引用.这个map集合类具体里面有什么东西需要我们自己添加了。
ArrayList<Map<String,Object>>coll
= new ArrayList<Map<String,Object>>();
定义List 结合类
Map<String, Object>item;
item = new HashMap<String,Object>();
item.put("prod_na", "Linux");
item.put("prod_type", "ST");
想map 集合类里添加数据.
coll.add(item);
把map 集合类引用添加到list集合类中.
item = new HashMap<String,Object>();
item.put("prod_na", "Windows"); item.put("prod_type","Mobile");
coll.add(item);
用了这个东西就好了。然后下一个参数resource
代表Listview 中每个行框 (item)的布局文件索引.就是那个.xml 中在R.Layout. #那个整数.用这个.xml描述了每个Item的外表.
from是个数组索引,该数组指明了要取map里的哪个值,因为map是个键值对,你传进去键值,系统会自动给你找到他的值.
最后 to 用来指明你从map里取的这写值如何和这个xml匹配,一般建议这个xml里有几个textview.你把这几个控建的ID传进去就好了.
例:
(List1.java)
package Jezze.Goo;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class List1 extends ListActivity{
@Override
protectedvoid onCreate(Bundle savedInstanceState){
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
ArrayList<HashMap<String,String>>list=newArrayList<HashMap<String,String>>();
HashMap<String,String> map1 =newHashMap<String,String>();
HashMap<String,String> map2 =newHashMap<String,String>();
HashMap<String,String> map3 =newHashMap<String,String>();
HashMap<String,String> map4 =newHashMap<String,String>();
map1.put("userName", "张三");
map1.put("userStatus", "大学");
map1.put("sex", "男");
map2.put("userName", "李四");
map2.put("userStatus", "高中");
map2.put("sex", "男");
map3.put("userName", "王二");
map3.put("userStatus", "博士");
map3.put("sex", "男");
map4.put("userName", "张力");
map4.put("userStatus", "小学");
map4.put("sex", "女");
list.add(map1);
list.add(map2);
list.add(map3);
SimpleAdapter adapter=newSimpleAdapter(this,list,R.layout.listview,newString[]{"userName","userStatus","sex"},newint[]{R.id.textView1,R.id.textView2,R.id.textView3});
setListAdapter(adapter);
}
// protectedvoid onListItemClick(ListView l, View v, int position, longid)
//{
//super.onListItemClick(l, v, position,id);
//System.out.println("position="+position+",id="+id);
////this.showDialog(0);
// }
}
(list.xml)
<?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"
>
<ListView
android:id="@id/android:list"//这里的ID很重要
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
(listview.xml)
<?xml version="1.0"encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/textView1"
android:layout_width="100dip"
android:layout_height="30dip"
android:paddingTop="5dip"
android:layout_marginRight="30dip"
/>
<TextView
android:id="@+id/textView2"
android:layout_width="100dip"
android:layout_height="30dip"
android:paddingTop="5dip"
/>
<TextView
android:id="@+id/textView3"
android:layout_width="100dip"
android:layout_height="30dip"
android:paddingTop="5dip"
/>
</LinearLayout>