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);
}