SimpleAdapter:其实就是数据的适配器,看看它在本实例的构造方
SimpleAdapter myAdapter = new SimpleAdapter(this ,data,R.layout.simplelayout, new String[]{img,text},new int[]{id_img,id_text});
this:就是Context 实例对象了;
data: 是所有列表的数据,在本例子中是List的实例对象;
R.layout.simplelayout:布局文件,主要就是ImageVeiw 和 TextiView 组件;
new String[]{img,text}:表示布局文件simplelayout.xml里边组件标签android:id属性的值;
new int[]{id_img,id_text}:表示布局文件simplelayout.xml里边组件标签对应的资源ID;
如下图片是本例子最终实现效果:
XML: simplelayout.xml
<?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" android:orientation="horizontal">
<ImageView
android:id="@+id/img"
android:layout_width="80dp"
android:layout_height="120dp"
android:paddingLeft="6dp"
android:src="@drawable/icon"
/>
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:textSize="50dp"
/>
</LinearLayout>
代码:
package com.net.zyc;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.net.zyc.R.id;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String img="img",text="text"; //布局文件simplelayout.xml里边组件标签android:id属性的值;
int id_img =R.id.img, id_text=R.id.text; //布局文件simplelayout.xml里边组件标签对应的资源ID;
ListView lv = (ListView) findViewById(id.listView1); //listView 组件
Map<String, Object> item1 = new HashMap<String, Object>(); //list 每一列项的元素
item1.put(img, R.drawable.chenghao); //图片列项 相应的ID给予图片
item1.put(text, "陈好"); //文本列项 相应的ID 给予文本
Map<String, Object> item2 = new HashMap<String, Object>();
item2.put(img, R.drawable.linian);
item2.put("text", "李念");
Map<String, Object> item3 = new HashMap<String, Object>();
item3.put(img, R.drawable.jiuquan);
item3.put(text, "日本女孩");
List<Map<String, Object>> data = new ArrayList<Map<String,Object>>(); //生成整个列表的数据对象
/**将每一个列项添加到列表中**/
data.add(item1);
data.add(item2);
data.add(item3);
SimpleAdapter myAdapter = new SimpleAdapter(this,data,R.layout.simplelayout,
new String[]{img,text},new int[]{id_img,id_text});
lv.setAdapter(myAdapter);
}
}