(找不到id引用)没有资源匹配给定的名称

时间:2012-05-23 18:54:34

标签: android android-layout android-xml

我在相对布局中有以下内容。

<TextEdit
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@id/buttonA"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@id/buttonA" />

<Button
    android:id="@+id/buttonA"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:text="@string/message" >
</Button>

Eclipse在线路android:layout_alignBottom =“@ id / buttonA”和android:layout_toLeftOf =“@ id / buttonA”分别给出了这些错误:

错误:错误:找不到与给定名称匹配的资源(在'layout_alignBottom'中,值为'@id / buttonA')。

错误:错误:找不到与给定名称匹配的资源(在'layout_toLeftOf',值为'@id / buttonA')。

用@ + id / buttonA替换@ id / buttonA会删除此eclipse错误消息。这是正确的做法吗?如果是这样,为什么会这样呢? @ + id不会创建新的ID吗?我不想要新的身份证。我想使用按钮对象中引用的那个。解决这个问题的最佳方法是什么?

谢谢你们。 -Joe

2 个答案:

答案 0 :(得分:31)

使用@+id是正确的方法。 @+id会创建一个新ID,但前提是该名称尚不存在。

如果您不想这样做,对于这个特殊的简单情况,将TextEdit移到Button下面就足够了。

答案 1 :(得分:2)

您尝试用作引用的布局应在用作参考之前定义,即用作'layout_toLeftOf'。

这就像你必须在使用它之前在java中声明一个变量。声明然后使用它......

如果您需要在文件中定义之前提及ID,则需要使用 @+id/textView1 而不是 @id/textView1