Wie übergeben Sie die benutzerdefinierte Komponente Parameter in java und xml
Beim erstellen einer benutzerdefinierten Komponente in android ist es oft gefragt, wie Sie zu erstellen, und übergeben Sie durch den attrs-Eigenschaft des Konstruktors.
Es ist oft vorgeschlagen, dass, wenn Sie eine Komponente erstellen, die in java verwenden Sie einfach den default-Konstruktor, D. H.
new MyComponent(context);
anstatt zu versuchen, zu erstellen eine attrs-Objekt zu Durchlaufen, um den überladenen Konstruktor oft gesehen in xml-basierten benutzerdefinierten Komponenten. Ich habe versucht, zu erstellen eine attrs Objekt und es scheint nicht leicht oder überhaupt möglich ist (ohne einen überaus komplizierten Prozess), und von allen Konten ist nicht wirklich erforderlich.
Meine Frage ist dann: Was ist der effizienteste Weg, Bau eine benutzerdefinierte Komponente, die in java geht oder legt Eigenschaften, die sonst vom attrs Objekt beim Befüllen einer Komponente mit Hilfe von xml?
InformationsquelleAutor der Frage Emile | 2010-12-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
(Full disclosure: Diese Frage ist ein Ableger des Erstellen von benutzerdefinierten Ansicht)
Können Sie erstellen, die über Konstruktoren der drei standard-diejenigen, geerbt von
View
hinzufügen, dass die Attribute, die Sie wollen......aber ich empfehle es nicht. Es ist besser zu Folgen der gleichen Konvention wie die anderen Komponenten. Dadurch wird die Komponente so flexibel wie möglich und verhindern, dass Entwickler, die mit Ihrer Komponente aus reißen sich die Haare aus, weil Ihr nicht mit allem anderem:
1. Bieten Getter und setter für jedes der Attribute:
2. Definieren Sie die Attribute in
res/values/attrs.xml
so können Sie verwendet werden, in XML.3. Sorgen die drei standard-Konstruktoren von
View
.Wenn Sie auswählen müssen, alles, was aus den Parametern in einem der Konstruktoren, die einen
AttributeSet
Sie tun können...Alle, die fertig sind, können Sie instanziieren
MyCompnent
programmgesteuert......oder per XML:
InformationsquelleAutor der Antwort Blrfl