SimpleAdapter:用来绑定在xml中定义的控件对应的数据。
SimpleAdapter的使用非常简单,同时它的功能也非常强大。可以通过它自定义ListView中的item的内容,比如图片、多选框等。
使用SimpleAdapter的步骤。
(1)根据需要定义ListView每行所实现的布局。
(2)定义一个HashMap构成的列表,将数据以键值对的方式存放在里面。
(3)构造SimpleAdapter对象。
(4)将LsitView绑定到SimpleAdapter上。
package com.example.listviewproject02;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class ListViewMain extends Activity {
private ListView list1=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view_main);
//创建一个listView
list1=(ListView)findViewById(R.id.list1);
//使用ArrayList保存多个数据
ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String,Object>>();
for(int i=0;i<10;i++)
{
HashMap<String, Object> map=new HashMap<String, Object>();
map.put("ItemImage", R.drawable.ic_launcher);
map.put("ItemTitle", "当前行数: "+i);
map.put("ItemText", "当前内容是: "+i+" !!! ");
listItem.add(map);
}
//设定适配器规则
SimpleAdapter simpleadapter= new SimpleAdapter(this, listItem, R.layout.activity_list_view_main, new String[]{"ItemImage","ItemTitle","ItemText"}, new int[]{R.id.Image1,R.id.ItemTitle,R.id.ItemText});
//绑定适配器
list1.setAdapter(simpleadapter);
}
}
对应的XML文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/Image1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
/>
<TextView
android:id="@+id/ItemTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/ItemText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/Image1"
android:layout_marginTop="18dp" />
<ListView
android:id="@+id/list1"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
></ListView>
</RelativeLayout>
效果: