2016-05-08 40 views
0

我想在我的Android應用程序中通過幾項活動獲得一些類似的可擴展列表視圖。他們都有相同的內容,但使用不同的設計。例如有些按鈕,有些則不是。Android應用程序中的類似自定義可擴展列表視圖

我甚至想要三個可擴展列表視圖,分享所有內容,但每個單元格的背景顏色除外。

反正,每個listview都有一個獨特的適配器,看起來像一個糟糕的設計實踐,因爲它們都非常相似。我正在考慮製作一個抽象適配器,而不是爲每個列表視圖擴展它,這是否會起作用?還有其他方法嗎?

謝謝。

+0

「我甚至想要三個可擴展的列表視圖,除了每個單元格的背景顏色之外,它們都共享一切。」 - 喜歡只有你的佈局資源是不同的。對所有3個列表視圖使用一個適配器,並在構造函數中傳遞佈局資源。 – zyamys

回答

1

對每個listview有一個獨特的適配器看起來像一個糟糕的設計實踐,因爲它們都非常相似。

這是正確的。重複的代碼幾乎總是錯誤代碼設計的標誌。

我正在考慮製作一個抽象適配器,然後擴展它爲每個列表視圖,會工作嗎?

是的。

有沒有其他方法?

是的。例如。如果你想有一個支持不同背景的適配器,你的適配器應該使用一個背景資源/顏色作爲構造器參數。這種方法適用於較小的變化。如果你想有一些不可擴展和一些可擴展的列表視圖,我會贊成繼承方法。


的問題是,我的一些列表視圖,將是擴張的,所以我不能使用回收站視圖。

Recyclerviews是比listviews更好的設計選擇。創建可擴展的並不難,請參閱Expandable list with RecyclerView?

+0

謝謝!由於這是我的第一個應用程序,我不必處理大量的數據,所以我會堅持使用基本的(listView),但我一定會記住,RecyclerView通常是更好的設計選擇 –