2010-07-29 47 views
1

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

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

是否有一个结构,以投入的strings.xmlmain.xml中等导致此将产生?

(是的,我们总菜鸟对不起。)

感谢您的帮助,您可以给,

拉斯·贝特曼

回答

0

R.java是由Eclipse自动生成的。如果它没有构建,这意味着你可能在你的xml文件中有一个错误,或者一个名称不允许的资源。
有时候,它只是Eclipse做奇怪的事情,在这种情况下,你可以尝试:
项目>清洁>所有项目 然后让Eclipse工作。
有时它解决了这个问题。如果不是,那么很有可能在资源的某处出现错误。
要创建这个文件,Eclipse的收集你在@ + ID,而且布局的名称,图片名称,字符串名称,XML文件中声明的IDS ...

+1

或者,如果您不使用Eclipse,则它通常由Ant通过aapt工具生成。 – 2010-07-29 16:17:04

+0

这非常有帮助,谢谢,我想我们可以从哪里看到R.id.Whatever现在应该出现在哪里。 – 2010-07-29 16:19:58

2

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

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

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

您可能想看看Notebook Sample应用程序及其组织方式。至少这就是我熟悉机器人组织的方法。

+0

一旦我在我的main.xml中有“@ + id ...”构造,清理(和重建)就会看到这些缺失的R.id错误的结束。但是,我的同事并不那么幸运。我们会继续。谢谢。 – 2010-07-29 16:18:42

0

看来,项目/ RES /布局/main.xml包含导致产生id in R.java的构建体。 (我不是限制了这些源只对XML文件)。

查找专为Android的:ID在各种小部件(我认为他们是所谓的),如TableLayoutTextView的的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对应于(TableLayoutTextView的编辑文本等)标识符紧随在XML文件中的“@ + id /”构造之后编码(并且在R.java中的初始化值是神奇地产生的 - 您不必担心这一点)。

感谢所有人的贡献。