本文章我們將去新建一個繼承BaseAdapter的Adapter類別, 讓我們可以創造更不一樣的Listview的item內容並且能了解到ArrayAdapter到底默默為我們實做了哪些內容。 建議搭配影片服用。 聲明: 此篇文章主要是我觀看 Lets Build That App 的影片來後實作驗證的心得,然後記錄其中的不足之處(Ex: Android官方API文件等等),文章最後有附上參考資料來源(有興趣可以當作延伸閱讀)。 BaseAdapter(用來定義專屬的Adapter) 這個類別是一個抽象類別,所以必須撰寫一個新類別去繼承它, 並且必須override 裡面的4個方法。 fun getView (postion: Int , convertView: View ? , viewGroup: ViewGroup?): View 參數 position :指定回傳值view是回傳第幾行的view,例如0就代表是回傳的view是對應第0行的view。 converView : 曾經轉換過的view結果,需要判斷是否為空值。 viewGroup : view群組,可以間接取得呼叫getView的content, 例如: viewGroup!!. context 回傳 某一行的view(可以從參數position得知是哪一行)。 fun getItem (p0: Int): Any 參數 p0 :取得第p0行的值 回傳 第p0的值,可能是字串或整數等等...依據你的資料來源而定。 fun getItemId (p0: Int): Long 回傳 第p0行的ID fun getCount (): Int 回傳 資料來源有幾筆資料 這個回傳值的大小會影響到顯示item的筆數, 通常這樣用:return array.size ViewHolder (ListView視圖的守護者) 參考官方說明: Your code might call findViewById() frequently during the scrolling of ListView , which can slow down performance.