Ich habe diesen Code:
%Vor%Jetzt brauche ich auch eine Version für RelativeLayout, also würde ich die Klassendatei duplizieren und "extends LinearLayout" durch "extends RelativeLayout" ersetzen. Ich denke, das wäre schlecht, weil ich keinen doppelten Code möchte.
Wie würde ich mein Ziel erreichen, da Java keine Mehrfachvererbung zulässt?
Ich habe etwas über das Kompositionsdesign gelesen, aber ich bin mir nicht sicher, wie ich das umsetzen soll.
Vielleicht könnte mir jemand einen Anhaltspunkt dafür geben, wie ich dieses Problem am elegantesten lösen kann?
Von dem, was ich gelernt und benutzt habe, gibt es zwei Möglichkeiten:
Sie können das tun, was Sie vermeiden möchten (duplizieren Sie die Klassendatei und ersetzen Sie "extends LinearLayout" durch "extends RelativeLayout")
Sie können zwei Schnittstellen und eine Klasse erstellen: Eine Schnittstelle, die LinearLayout erweitert, eine weitere, um RelativeLayout zu erweitern, und die Klasse, die die Methoden und Variablen der Erweiterungsschnittstellen implementiert.
Ich hoffe, das hilft ein wenig
Sie müssen Ihre Herangehensweise überdenken.
Scheint so, als ob Sie Layout verwenden, um die VIEW-Logik zu steuern. Leider enthält Ihre Frage nicht zu viele Informationen darüber, was Sie erreichen möchten.
Sie haben wenige Möglichkeiten:
Tags und Links java android inheritance android-linearlayout relativelayout