2011-01-25 40 views
6

我想設置一個圖像GridView佈局,這涉及到從BaseAdapter類派生一個新類。我一直在使用網站developer.android.com上的教程,但我仍然不完全明白它的含義。有人可以向我解釋一下BaseAdapter究竟是什麼?我不明白Android開發者網站提供的定義。瞭解BaseAdapters以及如何使用它們

由於

回答

3

http://developer.android.com/resources/tutorials/views/hello-gridview.html

GridView控件是一種類型的視圖被稱爲一個AdapterView的子類。這些通常包含許多較小的視圖,但依賴於適配器爲它們提供這些視圖。 BaseAdapter類是爲了覆蓋告訴AdapterView(您的GridView)顯示內容的方法而擴展的類。最重要的方法是getView()方法,在該方法中,您返回視圖以顯示在網格上的特定位置。

雖然這個設置有點令人困惑和複雜,但Android的開發者選擇了它,因爲它允許所有的優化。 AdapterViews的很多優化都是通過重複使用Views而不是在getView方法中創建新的獲得的。這是您可以在getView方法中看到的convertView參數。如果convertView == null,那麼該方法需要創建一個新的View對象並返回一個昂貴的操作。如果它不爲空,那麼適配器可以重用該視圖,只需更改該教程示例中的圖像即可。

19

適配器用於將數據綁定到視圖。見AdapterView

一個AdapterView是視圖,其孩子由一個適配器確定。

幾個佈局圖從適配器視圖中獲得類似的GridView,ListView控件和畫廊。

當然,您一般不直接使用AdapterViewAdapter,而是使用或派生自其某個子類。 Adapter的子類可能會添加更多功能,這些功能會更改如何將數據綁定到視圖。

BaseAdapter是適配器接口的抽象基類,用於簡化實現適配器。你可以實現你自己的,但是框架已經提供了一些非常靈活的適配器。一些流行的適配器是:

ArrayAdapter

  • 結合數據的陣列的視圖
  • 倍率getView()膨脹,填充,並返回一個自定義視圖在給定索引陣列。 getView()方法通過參數convertView包含機會重用視圖。

CursorAdapter

  • 從遊標(如數據庫光標)結合數據的圖
  • 抽象這樣就不會直接使用它,使用一個子類或導出您自己的
  • 實現抽象方法newView()來擴充,填充並返回當前光標位置所需的視圖並實現抽象方法bindView填充正被再利用現有的視圖..

SimpleCursorAdapter

  • 一個具體實現的CursorAdapter
  • 它可以採取行佈局和光標列的映射到行佈局小部件
  • 支持文本和圖像,但可以使用setViewText和自定義
  • 可以支持其他類型,並且可以通過鉤子自定義綁定:客戶端實現SimpleCursorAdapter.ViewBinder接口和setViewValue()方法來爲給定行(當前遊標狀態)和數據「列」膨脹,填充和返回所需視圖。此方法只能定義「特殊」視圖和綁定,但仍然遵循SimpleCursorAdapter對「常規」綁定的標準行爲。
相關問題