Android:为什么 View 的ID应该是正数?

标签 android findviewbyid

在View.java中,

setId - “设置此 View 的标识符。标识符在此 View 的层次结构中不必是唯一的。标识符应该是正数。”

&

findViewById - “查找具有给定 id 的 subview 。如果此 View 具有给定 id,

为什么我不能使用负数作为 View 的 id?我注释掉了

    public final View findViewById(int id) {
    // The original android check at here
    //  if (id < 0) { 
    // is commented out to test if system could run when Ids are negative numbers
    if (id == NO_ID) {
        return null;
    }
    return findViewTraversal(id);
}

系统似乎运行良好。

最佳答案

这很可能只是一个设计决策。负标识符通常用于通知底层实体出现问题,因此使用负 ID 通常会被人反对。

关于Android:为什么 View 的ID应该是正数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8849121/

相关文章:

android - 是否可以从 Realm 迁移到 Sqlite?

android - 使用 View.GenerateViewId 创建 ID 时如何查找带 ID 的 TextView

java - 尝试在单独的类中实现 onClickListener 但无法解析 findViewById

android - findViewById() 为对话框中的 View 返回 null

java - Android 编程 - 尝试使用 Java 代码更改 TextView 的文本 - 启动时出错

Android - findViewById 返回 null

android - 带有 FragmentStatePagerAdapter 的 WebView 在调用 setCurrentItem 时变为空白

android - 通过 Intent 而不是构造函数传递数据

android - 为什么在测量自定义 View /布局时 MaterialAlertDialog 这么慢?

java - 如何使用上下文包装器在运行时更改应用程序语言?