猿问

findViewByID返回空

findViewByID返回空

首先:是的,我读过关于这个话题的所有其他文章。不仅仅是这个地方的人.。(你看,我有点沮丧)

他们中的大多数都是带着建议来使用的。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.findViewByIdView.findViewById差异。因此,我在本地存储传递给海关视图构造函数的上下文,并尝试:

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

也回来了null.

然后,我将我的自定义视图更改为ViewGroup相反View并更改了location_layout.xmlTextView是我的自定义视图的直接子视图,因此View.findViewById应该像想象的那样起作用。企业:它没有解决任何问题。

那我到底做错什么了?

如有任何意见,我将不胜感激。


千万里不及你
浏览 556回答 3
3回答

慕斯王

,它返回空值。可能是因为你说得太早了。等到onFinishInflate().&nbsp;下面是一个示例项目展示一种习俗View访问它的内容。

拉丁的传说

可能,你在打电话findViewById在打电话之前setContentView?如果是这样的话,试着打电话findViewById&nbsp;后呼叫setContentView
随时随地看视频慕课网APP

相关分类

Android
我要回答