每个 View 都应该有一个 id 吗?

should every View have an id?

我想知道在 Android 中处理视图 ID 的两种可能方式:

  1. 自动为您创建的每个视图分配一个 ID
  2. 仅在需要时分配 ID

我能想到这两种方法的一些优缺点(第一个选项更多),但我想知道我是否正确。

编辑:我知道您不必为视图分配 ID,我想知道我是否应该(为了未来的发展)

这完全取决于您,因为它不一定对效率有任何特殊影响,具体取决于您自动添加 ID 的方式。我的方法是只在需要时分配 ID。这样做的原因是因为您只需要 ID 来引用其控制器中的视图或组件,或者如果您正在使用 RelativeLayout 并根据其他组件放置其他 views/components。否则它是没有真正被使用的无关代码。

您不需要为每个 View 分配 ID。仅当您想要从 Java 代码中引用视图时才分配 ID,例如您在 XML 中有一个 TextView 并且您想在运行时将其文本更改为其他内容,然后您必须使用 id 来引用使用方法 findViewById()

在 android 中还有标签,不仅是 ID,而且当您想以编程方式创建 View 时,标签最常使用,它们可以是字符串,而不是像 ID 那样的 Integer

不,仅当您想将 xml 视图转换为 java 对象并在 java 代码中使用该对象时,才需要每个视图的 ID