En primer lugar: sí, leí todos los otros hilos sobre este tema. Y no solo los de este sitio ... (ya ves, estoy un poco frustrado)
La mayoría de ellos vienen con el consejo de usar en android:id
lugar de solo id
en el archivo XML. Yo hice.
De otros, aprendí, eso View.findViewById
funciona de otra manera Activity.findViewById
. Yo también manejé eso.
En mi location_layout.xml
, yo uso:
<FrameLayout .... >
<some.package.MyCustomView ... />
<LinearLayout ... >
<TextView ...
android:id="@+id/txtLat" />
...
</LinearLayout>
</FrameLayout>
En mi actividad hago:
...
setContentView( R.layout.location_layout );
y en mi clase de vista personalizada:
...
TextView tv = (TextView) findViewById( R.id.txtLat );
que devuelve null
. Al hacer esto, mi actividad funciona bien. Entonces quizás sea por las diferencias Activity.findViewById
y View.findViewById
. Así que almacené el contexto pasado al constructor de la vista de aduanas localmente e intenté:
...
TextView tv = (TextView) ((Activity) context).findViewById( R.id.txtLat );
que también regresó null
.
Luego, cambié mi vista personalizada para ampliar en su ViewGroup
lugar View
y cambié location_layout.xml
para permitir que TextView
sea un hijo directo de mi vista personalizada, para que View.findViewById
funcione como se supone. Sorpresa: no resolvió nada.
Entonces, ¿qué diablos estoy haciendo mal?
Agradeceré cualquier comentario.