Android User Interface4:ListView&移動終端軟件開發課程&StudyAccount5 2018.10.16

ListView和所要展示的內容(即數據源)之間需要Adapter(適配器)來實現。
Adapter是一個橋樑,對ListView的數據進行管理,根據數據來源不同,所使用的Adapter不同。

1.常用Adapter

  • ListView在顯示之前需要使用setAdapter(ListAdapter adapter)方法!
  • ListView本身是繼承自ViewGroup的一種容器,它只設定擺放在它裏面的View的排列規則,不設定該View是什麼樣的,而View是怎麼樣的需靠ListAdapter裏面的getView方法來確定,另外我們設置的數據就是它的數據源,這樣就提高了ListView顯示的靈活性,只要設置不同的ListAdapter實例對象,就會生成不一樣的ListView。
  • ListAdapter是一個接口,凡是實現了該接口的實例對象都可以被ListView等需要ListAdapter的View使用,ListView的實現中存在一種設計模式叫策略模式,ListView顯示什麼和顯示的效果是根據選擇ListAdapter不同的實現類這個策略來實現的,這樣就讓ListView的顯示和數據分開了,從而ListView的顯示就更加靈活。

onCreate()函數中:

        ListView listView = (ListView) findViewById(R.id.mListView);
        setListAdapter(listView);  
        

setListAdapter()函數中:

		HashMap<String, Object> map1 = new HashMap<String, Object>();//準備數據
        map1.put("data0",R.drawable.qq2);
        map1.put("data1", "Cat");
        map1.put("data2", "愛喫魚");
        data.add(map1);
        HashMap<String, Object> map2 = new HashMap<String, Object>();
        map2.put("data0",R.drawable.qq3);
        map2.put("data1", "Fox");
        map2.put("data2", "天生我材必有用");
        data.add(map2);
        SimpleAdapter simpleAdapter = new SimpleAdapter(this,data,//準備數據適配器
                R.layout.listview_qq,
                new String[]{"data0","data1","data2"},//對應HashMap中的Key
                new int[]{R.id.qq_image,R.id.qq_name,R.id.qq_text});
        listView.setAdapter(simpleAdapter);//裝載到listView中

2.自定義Adapter

(1)實現ListAdapter接口,因爲BaseAdapter部分實現了ListAdapter,所以直接繼承自BaseAdapter就可以了。
(2)BaseAdapter是抽象類,那麼複寫裏面的抽象方法就可達到一般要求了。
(3)複寫完成後在setAdapter中傳入寫好的Adapter類的實例對象。

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