Android 查看 ID

Android View Id's

在android发展中:

通常情况下,一个视图会被分配一个ID,以区别于其他视图。该 ID 在 XML 中被赋予一个字符串值。 findViewByID(int id) 方法采用整数参数来获取视图。

我们使用属性 android:id 为 XML 中的视图分配一个标签。

方法 findViewById() 取什么值以及数字 ID 是如何生成的,我们用它来跟踪视图层次结构中的任何视图?

谢谢

当你想在 XML 中声明一个 id 时,你可以像 android:id="@+id/myId" R 为 Java class。当您为 XML 视图包含上述行时,public static final int myId 字段将包含在 R class 中。您可以从自己的 classes.

中引用它

findViewById(int) 接受整数作为参数。 R class 包含整数而不是您作为 XML id 输入的字符串。

这是来自 R class 的示例。

public final class R {
   public static final class id {
      public static final int ReflectionsLevelText=0x7f0d00af;
      public static final int about=0x7f0d01b3;
      public static final int action0=0x7f0d014d;
      public static final int action_bar=0x7f0d005f;
      public static final int action_bar_activity_content=0x7f0d0000;
      public static final int action_bar_container=0x7f0d005e; 
   }
}

因此,如果您想访问 ID 为 action_bar 的视图,您必须调用 findViewById(R.id.action_bar)

以同样的方式,R class 也包括可绘制对象、尺寸和基本上所有的资源。它们恰好是 R class.

内部静态 classes

例如,当您将可绘制对象 ic_my_pic.png 添加到 res/drawable 时,R class 中会生成一个字段。它看起来像,

public final class R{
    public static final class drawable{
         public static final int ic_my_pic=0x7f020000;
    }
}

现在您可以通过

从您的 classes 访问此图像
imageView.setImageResource(R.drawable.ic_my_pic);

您可以找到更多信息 here and here

当 gradle 构建您的应用程序时,它会生成一个“

<EditText 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:id="@+id/myEditText" />

然后您可以使用生成的 R 在您的代码中引用它 class:

EditText myEditText = (EditText) findViewById(R.id.myEditText);

window 中的所有视图都排列在一棵树中。您可以通过代码或通过在一个或多个 XML 布局文件中指定一棵视图树来添加视图。

视图可能有一个与之关联的整数 ID。这些 ID 通常在布局 XML 文件中分配,并用于在视图树中查找特定视图。

一个常见的模式是: 在布局文件中定义一个 Button 并为其分配一个唯一 ID。

<Button
     android:id="@+id/my_button"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="@string/my_button_text"/>

从 Activity 的 onCreate 方法中找到 Button

 Button myButton = (Button) findViewById(R.id.my_button);

视图 ID 不必在整个树中是唯一的,但最好确保它们至少在您正在搜索的树部分中是唯一的。

参考:https://developer.android.com/reference/android/view/View.html