首先:是的,我阅读了有关该主题的所有其他主题。不仅是来自这个网站的那些......(你看,我有点沮丧)
它们中的大多数都带有使用建议,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 工作正常。所以也许是因为Activity.findViewById
和View.findViewById
差异。所以我在本地存储了传递给海关视图构造函数的上下文并尝试了:
...
TextView tv = (TextView) ((Activity) context).findViewById( R.id.txtLat );
这也返回了null
。
然后,我将自定义视图更改为扩展,并将其更改为让成为我的自定义视图的直接子级,以便ViewGroup
应该按预期工作。惊喜:它没有解决任何问题。View
location_layout.xml
TextView
View.findViewById
那么我到底做错了什么?
我会很感激任何评论。