0

这是我的问题。

我目前正在为井字游戏设置相对布局。它由 9 个 ImageButtons 和 8 个用于获取网格的 Views 组成。

我的 xmlfile 中有错误,说“找不到资源”(即使 id 已正确构建到我的 r.class 中),或者当我将布局引用重新输入到其他视图时错误消失。但是,如果我重新键入它,清理项目并再次构建它,eclipse 会让我的 R.class 消失。

这是我的 XML 文件:

    `<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/notepad2" >    

    <View 
    android:layout_width="5dp" 
    android:layout_height="160dp"
    android:background="#FF0000"
    android:layout_toLeftOf="@id/hor2"
    android:id="@+id/vert1"
    />

 <View 
    android:layout_width="5dp" 
    android:layout_height="160dp"
    android:background="#FF0000"
    android:layout_toLeftOf="@id/hor3"
    android:id="@+id/vert2"
    />

 <View 
    android:layout_width="50dp" 
    android:layout_height="5dp"
    android:background="#FF0000"

    android:layout_alignLeft="@id/feld4"
    android:layout_above="@id/feld4"
    android:id="@+id/hor1"
    />

 <View 
    android:layout_width="50dp" 
    android:layout_height="5dp"
    android:background="#FF0000"

    android:layout_alignLeft="@id/feld5"
    android:layout_above="@id/feld5"
    android:id="@+id/hor2"
    />



 <View 
    android:layout_width="50dp" 
    android:layout_height="5dp"
    android:background="#FF0000"

    android:layout_alignLeft="@id/feld6"
    android:layout_above="@id/feld6"
    android:id="@+id/hor3"
    />

  <View 
    android:layout_width="50dp" 
    android:layout_height="5dp"
    android:background="#FF0000"

    android:layout_alignLeft="@id/feld4"
    android:layout_below="@id/feld4"
    android:id="@+id/hor4"
    />

 <View 
    android:layout_width="50dp" 
    android:layout_height="5dp"
    android:background="#FF0000"

    android:layout_alignLeft="@id/feld5"
    android:layout_below="@id/feld5"
    android:id="@+id/hor5"
    />

 <View 
    android:layout_width="50dp" 
    android:layout_height="5dp"
    android:background="#FF0000"

    android:layout_alignLeft="@id/feld5"
    android:layout_below="@id/feld6"
    android:id="@+id/hor6"
    />




<ImageButton
    android:id="@+id/feld1"
    android:layout_width="50dp"
    android:layout_height="50dp"

    android:background="@drawable/leer"
    android:contentDescription="@string/feld"
    android:layout_toLeftOf="@id/vert1"
    android:layout_alignTop="@id/vert1"
    />

<ImageButton
    android:id="@+id/feld2"
    android:layout_width="50dp"
    android:layout_height="50dp"

    android:background="@drawable/leer"
    android:contentDescription="@string/feld"
    android:layout_above="@id/hor2"
    android:layout_alignLeft="@id/hor2"
     />

 <ImageButton
    android:id="@+id/feld3"
    android:layout_width="50dp"
    android:layout_height="50dp"

    android:background="@drawable/leer"
    android:contentDescription="@string/feld"
    android:layout_toRightOf="@id/vert2"
    android:layout_alignTop="@id/vert2"
    />

  <ImageButton
    android:id="@+id/feld4"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:background="@drawable/leer"
    android:contentDescription="@string/feld"
    android:layout_toLeftOf="@id/vert1"
    android:layout_alignTop="@id/feld5"
    />

 <ImageButton
    android:id="@+id/feld5"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:background="@drawable/leer"
    android:contentDescription="@string/feld"
    android:layout_centerInParent="true"
    />

<ImageButton
    android:id="@+id/feld6"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:background="@drawable/leer"
    android:contentDescription="@string/feld"
    android:layout_toRightOf="@id/vert2"
    android:layout_alignTop="@id/feld5"
    />

<ImageButton
    android:id="@+id/feld7"
    android:layout_width="50dp"
    android:layout_height="50dp"

    android:background="@drawable/leer"
    android:contentDescription="@string/feld"
    android:layout_toLeftOf="@id/vert1"
    android:layout_below="@id/hor4"
    />

<ImageButton
    android:id="@+id/feld8"
    android:layout_width="50dp"
    android:layout_height="50dp"

    android:background="@drawable/leer"
    android:contentDescription="@string/feld"
    android:layout_toRightOf="@id/vert1"
    android:layout_below="@id/hor4"
    />

<ImageButton
    android:id="@+id/feld9"
    android:layout_width="50dp"
    android:layout_height="50dp"

    android:background="@drawable/leer"
    android:contentDescription="@string/feld"
    android:layout_toRightOf="@id/vert2"
    android:layout_below="@id/hor4"
    />

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/winners"
    android:text="@string/winner"
    android:layout_alignParentBottom="true"
    android:textColor="#FFFFFF"
/>

<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/anotherGame"
    android:visibility="invisible"
    android:layout_above="@id/winners"
    android:text="@string/newGameButton"
/>

`

有人知道如何解决吗?

我已经尝试过通常的方法。更正了 xml 文件中的“错误”,清理了项目,重新构建了它等等。没有任何效果。

4

2 回答 2

0

从您的第一个视图中,我看到了很多这样的问题:

<View 
    android:layout_width="5dp" 
    android:layout_height="160dp"
    android:background="#FF0000"
    android:layout_toLeftOf="@id/hor2"
    android:id="@+id/vert1"
    />

hor2尚未声明,您必须使用@+id

    android:layout_toLeftOf="@+id/hor2"

您需要更新所有这些以使用正确的符号。

于 2012-11-27T18:12:02.680 回答
0

@+id/虽然 Sam 走在正确的轨道上,但当您不设置android:id属性 时,这对用户来说实际上是一种不好的做法。@+id/如果它不存在,实际上会尝试将该 id 添加到您的 R 文件中。这可能会导致您删除另一个对齐的元素时出现问题,但由于您正在使用,因此不会引发错误@+id/

相反,您应该在 xml 文件中定义基于它们对齐的视图上方的布局。例如,winners应该去下面anotherGame

<Button
    android:id="@+id/anotherGame"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@id/winners"
    android:text="@string/newGameButton"
    android:visibility="invisible" />

<TextView
    android:id="@+id/winners"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:text="@string/winner"
    android:textColor="#FFFFFF" />

如果您绝对无法将所有视图声明在基于它们对齐的视图之上,则可以使用@+id/

于 2012-11-27T18:31:59.553 回答