Android中的Adapter用法

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章