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); } }
<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>
效果: