Android R.java使用

时间:2012-06-17 07:48:36

标签: android android-layout android-intent

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

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

我已阅读过该文档,但我对此R.java感到相当困惑:(

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

此致

3 个答案:

答案 0 :(得分:1)

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

android:id="@+id/my_button"
     

字符串开头的at符号(@)表示   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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

要在代码中引用字符串,请使用R:

R.string.MyString

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

我想这就是你所读到的内容,但除此之外,here解释得非常好。