gpt4 book ai didi

android - findViewByID 返回 null

转载 作者:行者123 更新时间:2023-12-02 01:25:04 27 4
gpt4 key购买 nike

首先:是的,我阅读了有关此主题的所有其他主题。不仅仅是来自这个网站的那些......(你看,我有点沮丧)

其中大多数都建议在 XML 文件中使用 android:id 而不仅仅是 id。我做到了。

我从其他人那里了解到,View.findViewById 的工作方式与 Activity.findViewById 不同。我也处理过。

在我的location_layout.xml中,我使用:

<FrameLayout .... >
<some.package.MyCustomView ... />

<LinearLayout ... >
<TextView ...
android:id="@+id/txtLat" />
...
</LinearLayout>
</FrameLayout>

在我的 Activity 中,我会:

...
setContentView( R.layout.location_layout );

在我的自定义 View 类中:

... 
TextView tv = (TextView) findViewById( R.id.txtLat );

返回null这样做,我的 Activity 工作正常。所以可能是因为 Activity.findViewByIdView.findViewById 的差异。因此,我将传递给自定义 View 构造函数的上下文存储在本地并尝试:

...
TextView tv = (TextView) ((Activity) context).findViewById( R.id.txtLat );

它也返回了null

然后,我更改了自定义 View 以扩展 ViewGroup 而不是 View,并更改了 location_layout.xml 以让 TextView 是我的自定义 View 的直接子级,因此 View.findViewById 应该按预期工作。惊喜:它没有解决任何问题。

那我到底做错了什么?

如有任何评论,我将不胜感激。

最佳答案

which returns null

可能是因为您调用得太早了。等待onFinishInflate()Here is a sample project演示访问其内容的自定义View

关于android - findViewByID 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57592075/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com