findViewById in einer benutzerdefinierten Ansicht, um die untergeordnete Ansicht zu finden

9

Ich habe eine Ansicht definiert, sie erweitert RelativeLayout , ich möchte ihre untergeordneten Elemente extrahieren, deren ID in der XML-Layoutdatei angegeben ist.

In HeaderView.java :

%Vor%

Ich habe sein Attribut in headview_attrs.xml definiert:

%Vor%

Ich verwende diese Ansicht in einer Layout-XML-Datei in activity_headerview.xml :

%Vor%

Hier kommt das Problem: in HeaderView.java, line 28, 29, mHeaderContainer und mContentViewContainer sind null.

Es sieht so aus in activity_headerview.xml , der RelativeLayout mit der ID headerview_header und der RelativeLayout mit der ID headerview_content sind nicht die Kinder von HeaderView .

Habe ich etwas falsch gemacht? Jede Hilfe wird großartig!

    
srain 16.12.2013, 02:30
quelle

1 Antwort

16

Wenn Ihre benutzerdefinierte Ansicht erstellt wurde, wurde die untergeordnete Ansicht nicht Ihrer Ansicht hinzugefügt. Versuchen Sie, Ihren Code in die Methode onFinishInflate () zu verschieben. Diese Methode wird vom LayoutInflate aufgerufen, nachdem das gesamte Layout aufgebläht wurde.

    
Tang Ke 16.12.2013, 02:44
quelle