12

相対レイアウト内に次のものがあります。

<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に置き換えると、この日食エラーメッセージが削除されます。それは正しいことですか?もしそうなら、なぜそれが代わりに機能するのでしょうか?@ + idは新しいIDを作成しませんか?新しいIDは必要ありません。ボタンオブジェクトで参照されているものを使用したい。これに対処するための最良の方法は何ですか?

みんなありがとう。-ジョー

4

2 に答える 2

31

を使用@+idするのが正しい方法です。@+id新しい ID を作成しますが、その名前の ID がまだ存在しない場合のみです。

それをしたくない場合は、この特定の単純なケースでは、 を のTextEdit下に移動するだけで十分ですButton

于 2012-05-23T18:56:41.453 に答える