Перш за все: так, я прочитав усі інші теми на цю тему. І не лише тих, хто з цього сайту ... (бачите, я трохи засмучений)
Більшість із них отримує поради використовувати, android:id
а не просто id
у XML-файлі. Я зробила.
Від інших я дізнався, що View.findViewById
працює інакше, ніж Activity.findViewById
. Я також впорався з цим.
В моєму location_layout.xml
, я використовую:
<FrameLayout .... >
<some.package.MyCustomView ... />
<LinearLayout ... >
<TextView ...
android:id="@+id/txtLat" />
...
</LinearLayout>
</FrameLayout>
У своїй діяльності я:
...
setContentView( R.layout.location_layout );
і в моєму власному класі перегляду:
...
TextView tv = (TextView) findViewById( R.id.txtLat );
який повертається null
. Роблячи це, моя діяльність працює чудово. Так, можливо, це через Activity.findViewById
і View.findViewById
відмінності. Тому я зберігав контекст, переданий місцевому конструктору митного перегляду, і намагався:
...
TextView tv = (TextView) ((Activity) context).findViewById( R.id.txtLat );
який також повернувся null
.
Потім я змінив власний вигляд на розширення ViewGroup
замість цього View
і змінив location_layout.xml
на дозвіл TextView
бути прямим дочірнім у власному власному режимі, щоб воно View.findViewById
працювало як слід. Сюрприз: це нічого не вирішило.
Так що, до біса, я роблю неправильно?
Я буду вдячний за будь-які коментарі.