在我们尝试的一些代码中,来自各种教程,我们最终错过了 R.id ,它应该在 R.java 中生成。我们可以添加它(类似于我们已经完成的其他“第一”Android项目),但是由于这个文件是自动生成的,我们所做的任何事情都会被最终覆盖。
public static final class id
{
public static final int Button01=0x7f060004;
.
.
.
}
是否有一个构造要放入 strings.xml , main.xml 等,导致生成它?
(是的,我们总是新手。抱歉。)
感谢您提供任何帮助,
Russ Bateman
答案 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 中的初始化值是神奇地生成的 - 您不必担心这一点。)
感谢所有贡献者。