gpt4 book ai didi

android - R.java 是否强制我所有的布局元素成为基于其 ID 的公共(public)变量?

转载 作者:行者123 更新时间:2023-11-29 16:18:34 26 4
gpt4 key购买 nike

我假设每个布局的元素 ID(例如按钮、 TextView 、编辑文本等)对于该布局都是唯一且私有(private)的。话虽如此,您将 Activity 设置为使用特定布局,您应该只能根据该特定布局中设置的 id 找到 View id。

但是,我现在发现我可以从我的 Activity 中引用我想要的任何 View ID,而不管我使用“setContentView(R.layout.THELAYOUTIWANTTOTARGET)”指定的物理布局如何。这种行为是否正常,我认为只有我在上面指定的布局上的那些元素的 id 可用?查看 R.java,我相信我在所有布局上指定的所有 id 都是公共(public)变量,因此,没有 id 可以具有相同的名称,否则可能会发生意外行为!

这对我的项目的影响是我现在必须将所有布局中的所有 ID 更改为唯一。我认为我的供应商布局 > 标题 TextView 与我的客户布局 > 标题 TextView 不同,不是这样吗?

感谢您的澄清!

最佳答案

你的假设是正确的。 IDS 是全局性的,对于大型项目,有时会很痛苦,导致 ID 名称非常长。但这也可以用作一个优势,因为您可以在不同的 Activity 上重复使用布局。

例如,您可以为您的 Activity 的特定部分(例如自定义按钮栏)设置一个布局,您可能希望将其添加到多个 Activity。在这种情况下,您可以将它膨胀到第一个 Activity 的特定 ViewGroup 中,也可以膨胀到另一个 Activity 中的另一个 ViewGroup 中。然后可以在这两个 Activity 中重用根据按钮的 ID 访问特定按钮的方法。

findViewById 方法仅适用于您从中调用它的 Activity 。如果按钮(或任何其他组件)存在于不同的 Activity 中,则只会返回当前 Activity 中的按钮。

关于android - R.java 是否强制我所有的布局元素成为基于其 ID 的公共(public)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379920/

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