2014-03-04 65 views
1

目前,我有我四個陣列需要來填充自定義佈局列表細胞的各種元素。 我看過基本適配器和陣列適配器。後者要求輸入數據是對象的ArrayList。陣列適配器與底座適配器

從性能的角度看,那會是最好使用基本適配器,或當前的數據集轉換成對象的ArrayList,從而使用多個存儲器將是使用的選項?

+0

嗯......簡單對象是更好,但有時他們是有用的和更多的問題。因此,您的適配器中可能存在習慣對象。 Everythink取決於您想要使用該適配器的內容和內容。有時候,如果數據不是很大,最好還是繼續進行妥協。 – RMachnik

回答

1

圍棋與BaseAdapter。刪除使用ArrayList的要求會使實現更加靈活。唯一需要做的工作就是實現一些基本的方法,比如getCount() - 這很可能是你的集合的長度 - 或getObject() - 它可能是你在列表中的任何位置的對象。你甚至可能需要實現你自己的構造函數,但嘿,這只是使用OOP的一部分。沒什麼大不了的。

有使用一個適配器比其他任何性能差異。 BaseAdapter是多種不同適配器類型的超類(其中之一是ArrayAdapter)。如果沒有成本,沒有意義,不要去BaseAdapter你會得到完全相同的結果,並具有更大的靈活性。

+0

爲什麼不用ArrayAdapter?你能解釋嗎?我的意思是什麼是在ArrayAdapter的限制? – UnKnown

+0

@UnKnown如果您知道要使用單個ArrayList,那麼ArrayAdapter沒有任何問題。如果您嘗試顯示的數據未以該格式存儲,則無法使用ArrayAdapter。至少對我而言,這事情發生了很多。所以我只是做一個適合我需求的BaseAdapter。 – Rarw

+0

但是如果我重寫ArrayAdapter的getView方法? – UnKnown

0

如果你把所有的數據,當您創建的適配器,我建議有一個ArrayAdapter去。這是更少的代碼,所以錯誤的空間更小。如果您想要即時填充項目,或者您的數據集可能會發生顯着變化,那麼您可能需要使用自己的適配器進行額外的控制。