gpt4 book ai didi

android - R.java- 在 android 中处理重复的 View ID

转载 作者:行者123 更新时间:2023-11-29 14:52:35 33 4
gpt4 key购买 nike

假设如果我在两个不同的布局中为两个不同的 View 使用相同的 id,我可以看到在 R.java 中的类“id”中只为该 id 创建了一个引用。实际上我的想法是,当尝试在 build 的类“id”中添加具有相同名称的常量时,它应该显示错误。为什么它不显示错误?它如何用一个 id 识别两个不同的 View ?

最佳答案

如果你有两个不同的人,在 2 个不同的组中,都叫 Vicky,那么在调用这个名字 (=id) 时那个人是谁并不重要。如果您在第一组中调用“Vicky”,则该组中的 Vicky 会响应。在 android 中,您可以使用 setContentView(<layout file>) 为 Activity 分配“组” View 其中 <layout file>是组。如果您通过 findViewWithId() 请求一个带有不可用 ID 的 View (例如,不在加载的布局文件中),它会返回 null。

例子:

layout1.xml包含

<View id="@+id/name1"/>
<View id="@+id/name2"/>
<View id="@+id/name3"/>

layout2.xml包含

<View id="@+id/name1"/>
<View id="@+id/name3"/>

调用 findViewById(R.id.name1)在第一个和第二个布局文件上,将返回第一个 View 。但是当你调用findViewById(R.id.name2)在第二个布局上,它将返回 null .该 id 确实存在于 A 布局文件中,但根本不存在于“已加载”布局文件中。

Id 不是对 View 对象的引用。它们是可以被不同布局中的多个 View 使用的标识符。通过在布局文件中查找标识符,您可以获得对使用它的 View 的引用。

关于android - R.java- 在 android 中处理重复的 View ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13873018/

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