gpt4 book ai didi

android - 有人可以向我解释 FindViewById(1) 或 FindViewById(2) 背后的魔力吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:31:44 28 4
gpt4 key购买 nike

[更新] -- 只是想向所有人确认,我同意使用硬编码号码总是一个坏主意。我的好奇心是在使用 Maps API 时枚举的 1、2 常量值是什么。如果我找到像 R.id.my_current_location_view 这样的东西,我会感觉更舒服。

我看到代码散落在这个问题和其他问题中。人们怎么知道使用 findViewById(1) 等?与 findViewById(R.id.something);

Change position of Google Maps API's "My location" button

这个问题似乎有一些很深的困惑。我想知道 findViewById(1) 的神奇数字是什么。如果您单击链接,您会看到没有人向 mapView 提供 setId(1) 值,但不知何故人们知道检查父 View 然后 findViewById( 1) 和 findViewById(2)..

我也在那里问了这个问题,这样上下文就不会丢失,但似乎没有人可以解释这一点。

最佳答案

View ID 只是正的非零整数。

如果您使用 @+id/name 语法在 XML 中设置了 View ID,则整数会在 R.java 中生成,您需要引用它作为代码中的 R.id.name

如果您使用 setId(value) 在代码中设置了 View ID,则可以使用 findViewById(value) 从层次结构中检索具有该 ID 的 View ,其中id 值可以是硬编码的非零正整数,例如 1 或 2。

一般在写代码的时候,尽量避免使用那样的魔数(Magic Number)常量。

关于android - 有人可以向我解释 FindViewById(1) 或 FindViewById(2) 背后的魔力吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25883458/

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