1.功能
Adapter是Android中将数据与UI绑定的接口,可以将复杂数据(字符串等文字信息、图片信息等)与view中的相关id进行复杂绑定。
2.SimpleAdapter
构造函数
publicSimpleAdapter(Context context,List<? extends Map<String, ?>> data, int resource,String[] from, int[] to)
context:指向当前窗口,一般用this即可
resource:设置显示格式的xml文件(layout)
from:data中的key,与to中配对
to:xml文件中要绑定数据的id,与from配对
data:数据源,Map数组,其中包含要提供绑定的信息的key与信息。key与from相对应。
例子:mainactivity.java
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView lv = (ListView)findViewById(R.id.listview);
ArrayList<Map<String, Object>> contents=new ArrayList<Map<String,Object>>();
for(int i=0;i<10;i++)
{
Map<String, Object> map = new HashMap<String, Object>();
map.put("pic", R.drawable.icon);
map.put("title", "test-titlte");
map.put("content", "test-content");
contents.add(map);
}
SimpleAdapter adapter = new SimpleAdapter(this, contents, R.layout.listitem,
new String[] {"pic","title","content"}, new int[]{
R.id.listitem_pic,R.id.listitem_title,R.id.listitem_content
});
lv.setAdapter(adapter);
}
listitem.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="?android:attr/listPreferredItemHeight">
<ImageView android:id="@+id/listitem_pic"
android:layout_width="wrap_content" android:layout_height="fill_parent"
android:layout_alignParentTop="true" android:layout_alignParentBottom="true"
android:src="@drawable/pic" android:adjustViewBounds="true"
android:padding="2dip" />
<TextView android:id="@+id/listitem_title"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_toRightOf="@+id/listitem_pic"
android:layout_alignParentRight="true" android:layout_alignParentTop="true"
android:layout_above="@+id/listitem_content"
android:layout_alignWithParentIfMissing="true" android:gravity="center_vertical"
android:text="@+id/listitem_title" android:textSize="22px" />
<TextView android:id="@+id/listitem_content"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_toRightOf="@+id/listitem_pic"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true" android:singleLine="true"
android:ellipsize="marquee" android:text="@+id/item_content"
android:textSize="14px" />
</RelativeLayout>
代码运行效果如下图:
3.ArrayAdapter
构造函数ArrayAdapter (Context context, int textViewResourceId, List<T> objects)
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] strs = {"1","2","3","4","5"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,strs);
setListAdapter(adapter);
}