ListView 初步

ListView中最主要的是adapter的设置问题,这里简单写了两个Adapter。

第一种ArrayAdapter:


ListView 初步
 

private static String[] data1={"a","b","c","d"};
	private  List data2=null;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ListView listview=new ListView(this);
        ArrayAdapter adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,data);
     setContentView(listview);

其中样式 每条数据样式可自己定义,或使用系统自带的样式,如android.R.layout.simple_list_item_1。

如一行有多条数据,采用第二种SimpleAdapter:

先将数据放到 ArrayList<Map<String,Object>>中去,每条记录都是一个Map映射列表。


ListView 初步
 

data2=new ArrayList<Map<String,Object>>();
		Map<String, Object> item;
		item=new HashMap<String,Object>();
		item.put("姓名","张三");
		item.put("性别","男");
		data2.add(item);
		item=new HashMap<String,Object>();
		item.put("姓名","李四");
		item.put("性别","男");
		data2.add(item);
		item=new HashMap<String,Object>();
		item.put("姓名","小王");
		item.put("性别","女");
		data2.add(item);
SimpleAdapter adapter=new SimpleAdapter(this, data2, R.layout.listitem, new String[]{"姓名", "性别"},new int[]{R.id.mview1,R.id.mview2});
        listview.setAdapter(adapter);
        setContentView(listview);

 SimpleAdapter的构造函数最后两个参数,一个是String数组,里面每个字符串用于访问得到Map对象中的值。item.get("姓名");最后一个参数数组里的值为xml中两个TextView的ID。

其中list选项的样式可自己定义

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:layout_height="fill_parent">
	<TextView android:id="@+id/mview1" android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:width="300dp">
	</TextView>
	<TextView android:id="@+id/mview2" android:layout_width="wrap_content"
		android:layout_height="wrap_content">
	</TextView>
</LinearLayout>

 

你可能感兴趣的:(C++,c,android,xml,C#)