我在写一个计算器应用程序,我希望能够在4种计算模式之间切换:十进制,二进制,八进制和十六进制。为了管理不同模式的不同用户界面,我的Activity中有4个片段子类。除了Activity的主XML文件外,每个Fragment都有自己的XML布局文件。我在Android Developer网站上找到了一个用于扩展Fragments布局的指南,并且我遵循了该指南。不过,我想将侦听器等添加到布局的各种组件中,最好在片段的onCreateLayout方法中,或者其他可以轻松实现并最大限度地减少代码重复的位置。动态碎片中的布局
然而,当我尝试调用findViewByID来访问其中一个膨胀视图(显然在我调用LayoutInflater.inflate之后)时,我得到一个空返回值。无论我在onCreateLayout中还是从Activity中的其他位置(理论上已创建Views之后)调用findViewByID,都会发生此问题。这里有什么问题?
我认为可能是一个问题的一个问题是,我已经重载了各种片段布局之间的视图的名称。例如,二进制布局中的“1”按钮与十六进制布局中的“1”按钮具有相同的ID。这是否允许,假设二进制和十六进制布局从来都不是同一时间的活动的一部分?
谢谢。
是的,这样做。我很愚蠢,在Activity上调用findViewById,而不是在碎片树的根上。傻我。谢谢! – Ertai87
wc @ user1622825 –
你能投票给我吗?也请标记正确,因为这是正确的答案。 –