2017-09-12 9 views
-1

thisスレッドによれば、初めてリソースを作成するには@+id/を使用する必要があります。Android: "@ + id /"と "@ + id /"

しかし、このリソースが以前に作成されたことを忘れて、@+id/で再度作成するとどうなりますか?入力があり、まだ宣言されていない要素に対してnextFocusDownを設定しています。私はそれがすでに宣言だことを忘れていたので、私以下

<EditText 
... 
android:nextFocusDown="@+id/myinput2"/> 

200行は@+idで、この要素を作成します。

<EditText 
... 
android:id="@+id/myinput2"/> 

これは問題なく動作しますか?

答えて

1

いくつかの簡単な定義:

  • @+id/foo
  • @id/fooする場合にエラーになりますどの(「ID fooを使用する」という意味「が存在しない場合は、id fooを使用して、それを作成する」を意味ID foo

以前は、(あなたが参照しようとした場合にシステムがあなたを伝えることができ@+id@idを好む理由がありました)が存在しません存在しなかったID経由ビュー)が、今のシステムにも書いandroid:layout_below="@+id/idthatdoesntexistanywhere"がエラーとしてタグ付けされることを十分にスマートです:

enter image description here

はだから常に@+idを使用しています。

1

It works like this but can it cause an issue?

いいえ、できません。常に@+id/を使用してください。今のところ、Androidのビルド環境は分かりやすいほどスマートです。

0

同じidの2つの要素を同じlayoutファイルに入れると、IDEエラー(赤い下線)が生成され、コンパイルできなくなります。