2016-05-08 8 views
0

Ich möchte ein paar ähnliche erweiterbare Listviews in meiner Android-Anwendung über ein paar Aktivitäten. Sie alle haben den gleichen Inhalt, verwenden aber unterschiedliche Designs. Einige haben Knöpfe zum Beispiel, andere nicht.Ähnliche benutzerdefinierte erweiterbare Listenansichten in Android-Anwendung

Ich würde sogar drei erweiterbare Listviews haben wollen, die alles mit Ausnahme der Hintergrundfarbe für jede Zelle teilen.

Wie auch immer, mit einem einzigartigen Adapter für jede Listview scheint eine schlechte Design-Praxis, da sie alle sehr ähnlich sind. Ich dachte daran, einen abstrakten Adapter zu erstellen und ihn dann für jede Listenansicht zu erweitern. Würde das funktionieren? Gibt es einen anderen Ansatz?

Vielen Dank.

+0

"Ich würde sogar drei erweiterbare Listenansichten haben wollen, die alles mit Ausnahme der Hintergrundfarbe für jede Zelle teilen." - Sonst wie nur Ihre Layout-Ressource ist anders. Verwenden Sie einen Adapter für alle 3 Listenansichten und übergeben Sie Ihre Layout-Ressource im Konstruktor. – zyamys

Antwort

1

Einen einzigartigen Adapter für jede Listview zu haben, scheint eine schlechte Designpraxis zu sein, da sie alle sehr ähnlich sind.

Das ist richtig. Duplizierter Code ist fast immer ein Zeichen für schlechtes Code-Design.

Ich dachte daran, einen abstrakten Adapter zu erstellen und ihn dann für jede Listview zu erweitern. Würde das funktionieren?

Ja.

Gibt es einen anderen Ansatz?

Ja. Z.B. Wenn Sie einen Adapter haben möchten, der verschiedene Hintergründe unterstützt, sollte Ihr Adapter eine Hintergrundressource/Farbe als Konstruktorparameter verwenden. Dieser Ansatz passt für kleine Änderungen. Wenn Sie einige nicht erweiterbare und einige erweiterbare Listenansichten haben möchten, würde ich den Vererbungsansatz bevorzugen.


Das Problem ist, dass einige meiner Ansichten verwendet erweiterbar wäre, so konnte ich nicht Recycler Ansicht verwenden.

Recyclerviews sind eine bessere Designauswahl als Listenansichten. Erweiterbare zu erstellen ist nicht zu schwer, siehe Expandable list with RecyclerView?.

+0

Danke! Da es meine erste App ist und ich nicht mit einer Menge Daten fertig werden muss, würde ich bei den Grundlagen (listView) bleiben, aber ich würde sicherlich daran denken, dass RecyclerView im Allgemeinen die bessere Design-Wahl ist –

Verwandte Themen