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轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...