从哪个构建R.id?

时间:2010-07-29 15:29:53

标签: android

在我们尝试的一些代码中,来自各种教程,我们最终错过了 R.id ,它应该在 R.java 中生成。我们可以添加它(类似于我们已经完成的其他“第一”Android项目),但是由于这个文件是自动生成的,我们所做的任何事情都会被最终覆盖。

public static final class id
{
   public static final int Button01=0x7f060004;
   .
   .
   .
}

是否有一个构造要放入 strings.xml main.xml 等,导致生成它?

(是的,我们总是新手。抱歉。)

感谢您提供任何帮助,

Russ Bateman

3 个答案:

答案 0 :(得分:2)

假设我有一个包含以下内容的XML文件:

<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  >
 <ListView android:id="@+id/ListView01" 
  />
</RelativeLayout>

我将它保存在res / layout /中。 然后自动创建R.id.ListView01。

您可能希望查看Notebook示例应用程序及其组织方式。至少那是我熟悉机器人组织的方式。

答案 1 :(得分:0)

R.java由Eclipse自动生成。如果没有构建,这意味着您的xml文件中可能存在错误,或者名称不允许的资源。
有时它只是Eclipse做奇怪的事情,在这种情况下,你可以尝试:
项目&gt;清洁&gt;所有项目 然后让Eclipse工作。
有时它解决了这个问题。如果没有,您极有可能在资源的某处出现错误 要创建此文件,Eclipse会使用@ + id收集您在xml文件中声明的ID,还会收集布局名称,图像名称,字符串名称......

答案 2 :(得分:0)

project / res / layout / main.xml 似乎包含导致在 R.java 中生成 id 的构造。 (我不仅仅限制这些XML文件的来源。)

专门针对各种小部件中的 android:id (我认为它们被称为),例如 TableLayout TextView EditText 等会有相应的

public static final class id
{
   public static final int x=0x7f05006;
   public static final int y=0x7f05000;
   public static final int z=0x7f0500c;
   .
   .
   .
}

其中x,y,z对应于( TableLayout TextView EditText 等)标识符,紧跟在“@”之后+ id /“在XML文件中构造(并且 R.java 中的初始化值是神奇地生成的 - 您不必担心这一点。)

感谢所有贡献者。