1

当我们在 strings.xml 文件或 layout.xml 文件中添加一些条目时,R.java 文件会自动修改。同样,如果我们想从布局文件中引用某些内容,例如读取用户输入的 EditText 值,那么我们再次在我们的 java 代码中引用 R.java 文件来读取这些值。

这个 R.java 文件是关于什么的?这个 R.java 文件的每个条目的值似乎都是 HEXADECIMAL 格式,但它的用途是什么?

我已经阅读了文档,但我对这个 R.java 感到相当困惑 :(

请有人上前解释一下这个 R.java 文件的全部内容:(

问候,

4

3 回答 3

1

http://developer.android.com/guide/topics/ui/declaring-layout.html说:

android:id="@+id/my_button"

字符串开头的符号 (@) 表示 XML 解析器应该解析和扩展 ID 字符串的其余部分,并将其标识为 ID 资源。加号 (+) 表示这是一个新资源名称,必须创建并添加到我们的资源中(在 R.java 文件中)。

R.java 文件由 Android 资源管理器 ( aapt.exe ) 生成,其中包含对您应用的所有资源的引用。每个引用都是一个唯一的 id(public static final int)。这些常量以十六进制格式写入 R.java 文件。为每个资源分配特定整数的逻辑是 Android 资源管理器私有的。您可以在互联网上查看aapt.exe的源代码,例如http://gitorious.org/rowboat/frameworks-base/trees/d58fb97ddf052b3ceac921ac7e936af990392b2c/tools/aapt

于 2012-06-17T09:21:20.070 回答
0

它将资源对象转换为 Java 可识别的名称,供您在代码中引用。

于 2012-06-17T08:15:56.203 回答
0

R 类基本上是 Android 从您的代码中提供资源访问的方式。正如您在保存该资源文件时更改 strings.xml 等时所写的那样,Android SDK 将重新编译 R 类以使您的更改可在您的代码中访问。R类中的值或多或少并不重要,因为Android内部使用它来映射,例如字符串到ID。

要从代码中引用字符串,请使用 R,如下所示:

R.string.MyString

如果你在 string.xml 中的字符串被称为 MyString。布局等相同。

我想这就是你读到的,但除此之外,这里解释得很好。

于 2012-06-17T08:16:38.977 回答