1. ホーム
  2. android

[解決済み] Androidにおける"@id/"と"@+id/"の違いについて

2022-03-21 07:27:51

質問

<ブロッククオート

とはどのような違いがあるのでしょうか? @id/@+id/ ?

@+id/ プラス記号 + は、新しいリソース名を作成し、それを R.java ファイルですが @id/ ? のドキュメントより ID : Android のリソースを参照する場合 ID のように、プラス記号は必要ありませんが、androidパッケージの名前空間を追加する必要があります。

android:id="@android:id/list"

しかし、下の画像では、Eclipseはいかなる種類の @android:id/ .

Are @id/@android:id/ は同じですか?

解決方法は?

を参照してください。 Android resources で、これはAndroidシステムですでに定義されています。 @android:id/.. 一方、プロジェクトで定義/作成したリソースにアクセスするためには @id/..

その他の情報

チャットでの説明の通り、あなたはこのような問題があると言いました。

<ブロッククオート

もし android:id="@id/layout_item_id" はうまくいきません。 代わりに @+id/ は動作するのですが、この違いは何でしょうか? というのが最初の疑問でした。

まあ、文脈にもよりますが、XML属性で android:id に新しいエントリーを作成するようパーサー(ビルダーと呼ぶこともあります)に指示しているのです。 R.java 従って + の記号を使用します。

一方、他のケースでは、例えば android:layout_below="@id/myTextView" で、すでに作成された ID を参照しているので、パーサはこれをすでに作成された ID にリンクします。 R.java .

もう一度詳しく

チャットでおっしゃっていたように、注意してください android:layout_below="@id/myTextView" を持つ要素は認識されません。 myTextView が、使用する要素の後に書かれている場合。