Thursday, August 12, 2010

自訂Adapter的inflater方法

想要替Gallery或ListView去自制樣板時,通常會用到inflater指令。

然而這個Adapter會實作以下四個method︰

public class myAdapter extends baseAdapter
1.public int getCount() //決定了要跑出幾條清單
2.public Object getItem(int position)
3.public long getItemId(int position
4.public View getView(int position, View convertView, ViewGroup parent)//顯示的前置作業

Layout的顯現前置作業,通常都是在getView()裡去交待的
經實驗後,發現邏輯是
(1)進來跑一次的getView()→輸出position=0→out程式區塊
(2)重覆步驟1,但這次是跑position=1
(3)依此類推
★以上3個步驟,實驗後發現居然run了3遍這3個步驟


如︰
(1)Gallery經過setAdapter後的自製Adapter,會一次建立一個ImageView的實體,並取得資源,一經滑動到那個位置(Position),馬上重新執行一次getView(),去重新取得新的資源
(2)在ListView的setAdapter後的自製Adapter,也是一次一個getView()的方式去完成一格的list清單,重覆呼叫,直到整個ListView都將資料呈現出來為止

No comments: