Android Custom View-Konstruktor
Ich bin zu lernen, über die Verwendung von Benutzerdefinierten Ansichten aus den folgenden:
http://developer.android.com/guide/topics/ui/custom-components.html#modifying
Die Beschreibung sagt:
Klasse Initialisierung Wie immer, die
super zum ersten mal aufgerufen wird. Darüber hinaus
dies ist nicht ein Standard-Konstruktor, sondern
eine parametrisierte ein. Der EditText ist
erstellt mit diesen Parameter, wenn es
aufgeblasen wird aus einer XML-layout-Datei,
so, unser Konstruktor muss
nehmen Sie Sie und übergeben Sie an die
superclass-Konstruktor als auch.
Gibt es eine bessere Beschreibung? Ich habe versucht, herauszufinden, was die Konstruktor(en) Aussehen sollte, und habe ich 4 Auswahlmöglichkeiten (siehe Beispiel am Ende des Beitrags). Ich bin mir nicht sicher, was diese 4 Möglichkeiten zu tun (oder nicht tun), warum sollte ich Sie umsetzen, oder was die Parameter bedeuten. Gibt es eine Beschreibung dieser?
public MyCustomView()
{
super();
}
public MyCustomView(Context context)
{
super(context);
}
public MyCustomView(Context context, AttributeSet attrs)
{
super(context, attrs);
}
public MyCustomView(Context context, AttributeSet attrs, Map params)
{
super(context, attrs, params);
}
InformationsquelleAutor der Frage Mitch | 2010-05-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nicht der erste, wie, dass will einfach nicht funktionieren.
Der Dritte wird bedeuten, dass Ihre benutzerdefinierten
View
brauchbar aus XML-layout-Dateien. Wenn Sie nicht kümmern, dass Sie es nicht brauchen.Die vierte ist einfach falsch, AFAIK. Es gibt keine
View
Konstruktor, nehmen Sie eineMap
als Dritten parameter. Es ist eine, die dauert einint
als den Dritten parameter verwendet, um das überschreiben der default-Stil für das widget.Ich Neige dazu, verwenden Sie die
this()
syntax zu kombinieren:Sehen Sie den rest dieser code in dieses Buch Beispiel.
InformationsquelleAutor der Antwort CommonsWare
Hier mein Muster (erstellen einer benutzerdefinierten
ViewGoup
hier, aber trotzdem):und
InformationsquelleAutor der Antwort yanchenko
Wenn Sie das hinzufügen Ihrer benutzerdefinierten
View
ausxml
wie :müssen Sie die öffentlichen Konstruktor
MyView(Context context, AttributeSet attrs),
ansonsten erhalten Sie eineException
wennAndroid
versuchtinflate
IhreView
.Und wenn Sie fügen Sie Ihre
View
ausxml
und auch angeben dieandroid:style
attribute
wie :benötigen Sie auch die Dritte öffentlichen Konstruktor
MyView(Context context, AttributeSet attrs,int defStyle)
.Den Dritten Konstruktor wird normalerweise verwendet, wenn Sie erweitern einen Stil und passen Sie es, und klicken Sie festlegen möchten, dass
style
zu einem bestimmtenView
in Ihren layoutsDetails Bearbeiten
Dies sehen
InformationsquelleAutor der Antwort Nepster