android – findViewById在视图上返回null

前端之家收集整理的这篇文章主要介绍了android – findViewById在视图上返回null前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
让我们直截了当的代码.

活动代码,onCreate方法

setContentView(R.layout.main);

View main_view = findViewById(R.id.main_view);
View view_flipper = main_view.findViewById(R.id.vf);
View first_tab = view_flipper.findViewById(R.id.prev_pane);

main.xml布局代码

<ViewFlipper android:id="@+id/vf"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >  

    <include android:id="@+id/prev_pane" layout="@layout/vf_inner" /> 
<include android:id="@+id/cur_pane" layout="@layout/vf_inner" />
    <include android:id="@+id/next_pane" layout="@layout/vf_inner" />
</ViewFlipper>

问题!
主视图正确找到,ViewFlipper也是如此,但是没有找到prev_pane或cur_pane或next_pane,返回一个空指针.任何想法为什么?

通过使用Intent通过选项卡调用此活动.除id之外,所有引用都被正确解析

当我检查变量时,我会发现mChildren中的vf_inner布局的内容

解决方法

这是因为< include />标签不是您的UI层级中的实际视图.
他们更多的是Android工具的复制和粘贴指令.

如果要在运行时找到窗格,请将ID添加到所包含的布局的根元素中.这样可以通过findViewById()找到它们.

猜你在找的Android相关文章