BaseAdapter需要實現4個方法
- getCount:適配器中的數據集的個數
- getItemId:獲取指定的id
- getItem:獲取數據集中指定索引的Item
- getView獲取每一個Item的顯示內容,是核心方法
對Adapter中的getView方法進行優化
getView有三個傳入變量:
- int position //指定的哪一個Item內容
- View convertView //如果是已經回收的View,該參數會返回回收的View
- ViewGroup parent
getView方法的優化方法
- 在BaseAdapter類中創建一個ViewHolder類,ViewHolder類包含ListView佈局的控件,用ViewHolder來存放ListView佈局控件,避免重複的findViewById操作
- 判斷convertView參數是否爲空:
- 如果爲空:說明該View沒有被回收過
- 創建ViewHolder
- 實例化convertView對象,用Inflate方法將佈局文件轉化爲View對象並對其實例化
- 調用convertView的setTag方法讓convertView與viewHolder進行綁定
- 如果不爲空
- convertView的getTag方法,取出viewHolder對象
- 如果爲空:說明該View沒有被回收過